diff --git a/README.md b/README.md
index a42f14f70..49d827226 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
# LCN分布式事务框架v4.0
- "LCN并不生产事务,LCN只是本地事务的搬运工"
+ "LCN并不生产事务,LCN只是本地事务的协调者"
## 框架介绍
- LCN分布式事务框架是一款事务协调性的框架,框架本身并不创建事务,只是对本地事务做协调控制。因此该框架与其他第三方的框架兼容性强,支持所有的关系型数据库事务,支持多数据源,支持与第三方数据库框架一块使用(例如 sharding-jdbc),在使用框架的时候只需要添加分布式事务的注解即可,对业务的侵入性低。LCN框架主要是为微服务框架提供分布式事务的支持,在微服务框架上做了进一步的事务机制优化,在一些负载场景上LCN事务机制要比本地事务机制的性能更好,4.0以后框架开方了插件机制可以让更多的第三方框架支持进来。
+ LCN分布式事务框架的核心功能是对本地事务的协调控制,框架本身并不创建事务,只是对本地事务做协调控制。因此该框架与其他第三方的框架兼容性强,支持所有的关系型数据库事务,支持多数据源,支持与第三方数据库框架一块使用(例如 sharding-jdbc),在使用框架的时候只需要添加分布式事务的注解即可,对业务的侵入性低。LCN框架主要是为微服务框架提供分布式事务的支持,在微服务框架上做了进一步的事务机制优化,在一些负载场景上LCN事务机制要比本地事务机制的性能更好,4.0以后框架开方了插件机制可以让更多的第三方框架支持进来。
## 官方网址
@@ -81,13 +81,13 @@ tx-plugins-db 是LCN 对关系型数据库的插件支持
如上代码执行完成以后两个模块都将回滚事务。
-说明:在使用LCN分布式事务时,只需要将事务的开始方法添加`@TxTransaction(isStart=true)`注解即可,在参与方添加`@TxTransaction`即可。详细见demo教程
+说明:在使用LCN分布式事务时,只需要将事务的开始方法添加`@TxTransaction(isStart=true)`注解即可,在参与方添加`@TxTransaction`或者实现`ITxTransaction`接口即可。详细见demo教程
## 关于@TxTransaction 使用说明
@TxTransaction注解是分布式事务的标示。
- 若存在业务方法:a->b b->c b->d,那么开启分布式事务注解的话,只需要在a方法上添加@TxTransaction即可。
+ 若存在业务方法:a->b b->c b->d,那么开启分布式事务注解的话,需要在各个模块方法上添加@TxTransaction即可。
```
@TxTransaction(isStart=true)
@@ -112,10 +112,7 @@ tx-plugins-db 是LCN 对关系型数据库的插件支持
## maven 中心库地址
-
```
-
-
com.codingapi
tx-client
diff --git a/pom.xml b/pom.xml
index be5f712a1..b93c6d794 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.codingapi
tx-lcn
- 4.0.3
+ 4.1.0
pom
tx-lcn
@@ -32,7 +32,7 @@
1.7
3.6.0
- 4.0.3
+ 4.1.0
diff --git a/transaction-dubbo/pom.xml b/transaction-dubbo/pom.xml
index bba526d6b..29e9a600d 100644
--- a/transaction-dubbo/pom.xml
+++ b/transaction-dubbo/pom.xml
@@ -8,7 +8,7 @@
com.codingapi
tx-lcn
- 4.0.3
+ 4.1.0
com.codingapi
diff --git a/transaction-dubbo/src/main/java/com/codingapi/tx/dubbo/service/impl/ModelNameServiceImpl.java b/transaction-dubbo/src/main/java/com/codingapi/tx/dubbo/service/impl/ModelNameServiceImpl.java
index 9a6955b1f..1eab4bd1a 100644
--- a/transaction-dubbo/src/main/java/com/codingapi/tx/dubbo/service/impl/ModelNameServiceImpl.java
+++ b/transaction-dubbo/src/main/java/com/codingapi/tx/dubbo/service/impl/ModelNameServiceImpl.java
@@ -23,13 +23,24 @@ public class ModelNameServiceImpl implements ModelNameService {
@Autowired
private ApplicationConfig applicationConfig;
- @Autowired
- private ProviderConfig providerConfig;
-
@Autowired
private ApplicationContext applicationContext;
- public RegistryConfig getRegistryConfig(){
+ private ProviderConfig providerConfig(){
+ Map beans = applicationContext.getBeansOfType(ProviderConfig.class);
+ ProviderConfig providerConfig = null;
+ if(beans!=null){
+ String defaultKey = "default";
+ for(String key:beans.keySet()){
+ defaultKey = key;
+ }
+
+ providerConfig = beans.get(defaultKey);
+ }
+ return providerConfig;
+ }
+
+ private RegistryConfig getRegistryConfig(){
Map beans = applicationContext.getBeansOfType(RegistryConfig.class);
RegistryConfig registryConfig = null;
if(beans!=null){
@@ -64,7 +75,7 @@ private String getIp() {
@Override
public String getUniqueKey() {
- String address = getIp() + providerConfig.getPort();
+ String address = getIp() + getPort();
return MD5Util.md5(address.getBytes());
}
@@ -75,8 +86,8 @@ public String getIpAddress() {
}
private int getPort(){
- if(providerConfig.getPort()!=null){
- return providerConfig.getPort();
+ if(providerConfig()!=null&&providerConfig().getPort()!=null){
+ return providerConfig().getPort();
}
RegistryConfig registryConfig = getRegistryConfig();
diff --git a/transaction-motan/pom.xml b/transaction-motan/pom.xml
index 6b04eb205..9bdcbfa7b 100644
--- a/transaction-motan/pom.xml
+++ b/transaction-motan/pom.xml
@@ -8,7 +8,7 @@
com.codingapi
tx-lcn
- 4.0.3
+ 4.1.0
com.codingapi
diff --git a/transaction-springcloud/pom.xml b/transaction-springcloud/pom.xml
index 5494263f4..5342e94ae 100644
--- a/transaction-springcloud/pom.xml
+++ b/transaction-springcloud/pom.xml
@@ -6,7 +6,7 @@
com.codingapi
tx-lcn
- 4.0.3
+ 4.1.0
com.codingapi
diff --git a/tx-client/pom.xml b/tx-client/pom.xml
index a2f89e41a..08574c890 100644
--- a/tx-client/pom.xml
+++ b/tx-client/pom.xml
@@ -6,7 +6,7 @@
com.codingapi
tx-lcn
- 4.0.3
+ 4.1.0
com.codingapi
diff --git a/tx-client/src/main/java/com/codingapi/tx/listener/service/impl/InitServiceImpl.java b/tx-client/src/main/java/com/codingapi/tx/listener/service/impl/InitServiceImpl.java
index 591ce555c..b16d8a2e5 100644
--- a/tx-client/src/main/java/com/codingapi/tx/listener/service/impl/InitServiceImpl.java
+++ b/tx-client/src/main/java/com/codingapi/tx/listener/service/impl/InitServiceImpl.java
@@ -33,7 +33,7 @@ private void welcome(){
System.out.println("\t\t** \t\t** \t\t** ***");
System.out.println("\t\t*****\t\t ****\t\t** **");
System.out.println();
- System.out.println("\t\tLCN-Client version:4.0.3");
+ System.out.println("\t\tLCN-Client version:4.1.0");
System.out.println();
}
diff --git a/tx-manager/pom.xml b/tx-manager/pom.xml
index 07883a274..4d163f987 100644
--- a/tx-manager/pom.xml
+++ b/tx-manager/pom.xml
@@ -5,7 +5,7 @@
com.codingapi
tx-manager
- 4.0.3
+ 4.1.0
jar
tx-manager
@@ -61,6 +61,12 @@
+
+
+
+
+
+
org.springframework.boot
spring-boot-starter-web
diff --git a/tx-manager/src/main/java/com/codingapi/tm/listener/service/impl/InitServiceImpl.java b/tx-manager/src/main/java/com/codingapi/tm/listener/service/impl/InitServiceImpl.java
index 7fefd9895..af3e803b2 100644
--- a/tx-manager/src/main/java/com/codingapi/tm/listener/service/impl/InitServiceImpl.java
+++ b/tx-manager/src/main/java/com/codingapi/tm/listener/service/impl/InitServiceImpl.java
@@ -41,7 +41,7 @@ private void welcome(){
System.out.println("\t\t** \t\t** \t\t** ***");
System.out.println("\t\t*****\t\t ****\t\t** **");
System.out.println();
- System.out.println("\t\tLCN-TxManager version:4.0.3");
+ System.out.println("\t\tLCN-TxManager version:4.1.0");
System.out.println();
}
diff --git a/tx-manager/src/main/java/com/codingapi/tm/manager/service/impl/MicroServiceImpl.java b/tx-manager/src/main/java/com/codingapi/tm/manager/service/impl/MicroServiceImpl.java
index ce1bb38e5..5a74ac913 100644
--- a/tx-manager/src/main/java/com/codingapi/tm/manager/service/impl/MicroServiceImpl.java
+++ b/tx-manager/src/main/java/com/codingapi/tm/manager/service/impl/MicroServiceImpl.java
@@ -6,12 +6,8 @@
import com.codingapi.tm.manager.service.MicroService;
import com.codingapi.tm.model.TxServer;
import com.codingapi.tm.model.TxState;
-import com.netflix.appinfo.InstanceInfo;
-import com.netflix.discovery.EurekaClient;
-import com.netflix.discovery.shared.Application;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@@ -39,15 +35,6 @@ public class MicroServiceImpl implements MicroService {
private DiscoveryClient discoveryClient;
- @Autowired
- private EurekaClient eurekaClient;
-
-
-
-
- /** logger */
- private static final Logger logger = LoggerFactory.getLogger(MicroServiceImpl.class);
-
private boolean isIp(String ipAddress) {
String ip = "([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}";
@@ -57,19 +44,10 @@ private boolean isIp(String ipAddress) {
}
- public List getConfigServiceInstances() {
- Application application = eurekaClient.getApplication(tmKey);
- if (application == null) {
- logger.error("get eureka server error!");
- }
- return application != null ? application.getInstances() : new ArrayList();
- }
@Override
public TxState getState() {
TxState state = new TxState();
-
- //String ipAddress = EurekaServerContextHolder.getInstance().getServerContext().getApplicationInfoManager().getEurekaInstanceConfig().getIpAddress();
String ipAddress = discoveryClient.getLocalServiceInstance().getHost();
if(!isIp(ipAddress)){
ipAddress = "127.0.0.1";
@@ -89,19 +67,11 @@ public TxState getState() {
return state;
}
-
private List getServices(){
List urls = new ArrayList<>();
- List instanceInfos =getConfigServiceInstances();
- for (InstanceInfo instanceInfo : instanceInfos) {
- String url = instanceInfo.getHomePageUrl();
- String address = instanceInfo.getIPAddr();
- if (isIp(address)) {
- urls.add(url);
- }else{
- url = url.replace(address,"127.0.0.1");
- urls.add(url);
- }
+ List serviceInstances = discoveryClient.getInstances(tmKey);
+ for (ServiceInstance instanceInfo : serviceInstances) {
+ urls.add(instanceInfo.getUri().toASCIIString());
}
return urls;
}
diff --git a/tx-manager/src/main/resources/application.properties b/tx-manager/src/main/resources/application.properties
index 05ff87ff3..0fd633269 100644
--- a/tx-manager/src/main/resources/application.properties
+++ b/tx-manager/src/main/resources/application.properties
@@ -11,6 +11,13 @@ spring.resources.static-locations=classpath:/static/
#######################################txmanager-end#################################################
+#zookeeper地址
+#spring.cloud.zookeeper.connect-string=127.0.0.1:2181
+#spring.cloud.zookeeper.discovery.preferIpAddress = true
+
+#eureka 地址
+eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
+eureka.instance.prefer-ip-address=true
#######################################redis-start#################################################
#redis 配置文件,根据情况选择集群或者单机模式
diff --git a/tx-manager/src/main/resources/bootstrap.yml b/tx-manager/src/main/resources/bootstrap.yml
deleted file mode 100644
index e43871b96..000000000
--- a/tx-manager/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-eureka:
- instance:
- hostname: ${hostname:localhost}
- preferIpAddress: true
- server:
- peerEurekaNodesUpdateIntervalMs: 60000
- enableSelfPreservation: false
- client:
- serviceUrl:
- defaultZone: http://localhost:8761/eureka/
- healthcheck:
- enabled: true
- eurekaServiceUrlPollIntervalSeconds: 60
-
-endpoints:
- health:
- sensitive: false
-
-
diff --git a/tx-manager/src/main/resources/static/index.html b/tx-manager/src/main/resources/static/index.html
index 416d72a90..4e8e32149 100644
--- a/tx-manager/src/main/resources/static/index.html
+++ b/tx-manager/src/main/resources/static/index.html
@@ -2,7 +2,7 @@
- TxManager v4.0.3
+ TxManager v4.1.0
@@ -24,7 +24,7 @@
-
TxManagerV4.0.3 服务已启动
+
TxManagerV4.1.0 服务已启动
diff --git a/tx-plugins-db/pom.xml b/tx-plugins-db/pom.xml
index a3fd8e531..747907e61 100644
--- a/tx-plugins-db/pom.xml
+++ b/tx-plugins-db/pom.xml
@@ -6,7 +6,7 @@
com.codingapi
tx-lcn
- 4.0.3
+ 4.1.0
com.codingapi