From 1ac3dfea80bb212cacdc80a09d987b5310bdd0dc Mon Sep 17 00:00:00 2001
From: wangliang <1991wangliang@gmail.com>
Date: Wed, 21 Feb 2018 12:39:27 +0800
Subject: [PATCH 1/7] 4.1.0
---
pom.xml | 4 ++--
transaction-dubbo/pom.xml | 2 +-
transaction-motan/pom.xml | 2 +-
transaction-springcloud/pom.xml | 2 +-
tx-client/pom.xml | 2 +-
.../codingapi/tx/listener/service/impl/InitServiceImpl.java | 2 +-
tx-manager/pom.xml | 2 +-
.../codingapi/tm/listener/service/impl/InitServiceImpl.java | 2 +-
tx-manager/src/main/resources/static/index.html | 4 ++--
tx-plugins-db/pom.xml | 2 +-
10 files changed, 12 insertions(+), 12 deletions(-)
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-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..14e9f9231 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
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/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
From bbb40ab7bfcf1a01c40fef1f8fc69b587b6b757b Mon Sep 17 00:00:00 2001
From: wangliang <1991wangliang@gmail.com>
Date: Wed, 21 Feb 2018 13:40:26 +0800
Subject: [PATCH 2/7] bugs
---
.../service/impl/ModelNameServiceImpl.java | 25 +++++++++++++------
1 file changed, 18 insertions(+), 7 deletions(-)
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();
From 94f55ba8f9b84bdfaa1292ae8048d41b55177d10 Mon Sep 17 00:00:00 2001
From: wangliang <1991wangliang@gmail.com>
Date: Wed, 21 Feb 2018 20:18:06 +0800
Subject: [PATCH 3/7] update
---
README.md | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
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
From a6ea9318864ad993c6e2ebf06f83bce6c6f8bf2c Mon Sep 17 00:00:00 2001
From: wangliang <1991wangliang@gmail.com>
Date: Wed, 21 Feb 2018 20:41:45 +0800
Subject: [PATCH 4/7] =?UTF-8?q?=E6=94=AF=E6=8C=81zookeeper?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tx-manager/pom.xml | 6 +++
.../service/impl/MicroServiceImpl.java | 38 ++-----------------
.../src/main/resources/application.properties | 5 +++
tx-manager/src/main/resources/bootstrap.yml | 19 ----------
4 files changed, 15 insertions(+), 53 deletions(-)
delete mode 100644 tx-manager/src/main/resources/bootstrap.yml
diff --git a/tx-manager/pom.xml b/tx-manager/pom.xml
index 14e9f9231..4d163f987 100644
--- a/tx-manager/pom.xml
+++ b/tx-manager/pom.xml
@@ -61,6 +61,12 @@
+
+
+
+
+
+
org.springframework.boot
spring-boot-starter-web
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..67b0fc1bd 100644
--- a/tx-manager/src/main/resources/application.properties
+++ b/tx-manager/src/main/resources/application.properties
@@ -11,6 +11,11 @@ spring.resources.static-locations=classpath:/static/
#######################################txmanager-end#################################################
+#zookeeper地址
+#spring.cloud.zookeeper.connect-string=127.0.0.1:2181
+
+#eureka 地址
+eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
#######################################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
-
-
From 95e83d727758a55c7ab1e68a2c717ee7dc7a4054 Mon Sep 17 00:00:00 2001
From: "honglong.zhang"
Date: Sat, 24 Feb 2018 15:54:54 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E8=A7=A3=E5=86=B3Socket=E5=AF=B9=E5=A4=96?=
=?UTF-8?q?=E6=9C=8D=E5=8A=A1IP=E4=B8=8D=E5=AF=B9=E7=9A=84=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: I4f0dfb937c59f5151a487e88d8bfacaa406f569a
---
tx-manager/src/main/resources/application.properties | 1 +
1 file changed, 1 insertion(+)
diff --git a/tx-manager/src/main/resources/application.properties b/tx-manager/src/main/resources/application.properties
index 67b0fc1bd..f9eed59c7 100644
--- a/tx-manager/src/main/resources/application.properties
+++ b/tx-manager/src/main/resources/application.properties
@@ -16,6 +16,7 @@ spring.resources.static-locations=classpath:/static/
#eureka 地址
eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
+eureka.instance.prefer-ip-address=true
#######################################redis-start#################################################
#redis 配置文件,根据情况选择集群或者单机模式
From 08b562a95c0ec0d567c3283905bad0604e88700b Mon Sep 17 00:00:00 2001
From: "honglong.zhang"
Date: Sat, 24 Feb 2018 16:09:44 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E8=A7=A3=E5=86=B3Socket=E5=AF=B9=E5=A4=96?=
=?UTF-8?q?=E6=9C=8D=E5=8A=A1IP=E4=B8=8D=E5=AF=B9=E7=9A=84=E9=97=AE?=
=?UTF-8?q?=E9=A2=98=20zookeeper?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: Icee8c98a8cd7b4f5a2fe7cb9674a936d6029523b
---
tx-manager/src/main/resources/application.properties | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/tx-manager/src/main/resources/application.properties b/tx-manager/src/main/resources/application.properties
index f9eed59c7..19b844599 100644
--- a/tx-manager/src/main/resources/application.properties
+++ b/tx-manager/src/main/resources/application.properties
@@ -12,11 +12,12 @@ spring.resources.static-locations=classpath:/static/
#zookeeper地址
-#spring.cloud.zookeeper.connect-string=127.0.0.1:2181
+spring.cloud.zookeeper.connect-string=172.30.77.101: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
+#eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
+#eureka.instance.prefer-ip-address=true
#######################################redis-start#################################################
#redis 配置文件,根据情况选择集群或者单机模式
From 50a3a3f8894188f3b4a0d5056e56ac2d63bd9a95 Mon Sep 17 00:00:00 2001
From: "honglong.zhang"
Date: Sat, 24 Feb 2018 16:15:58 +0800
Subject: [PATCH 7/7] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=B8=8D=E5=BF=85?=
=?UTF-8?q?=E8=A6=81=E7=9A=84=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: I6cdd6025ca27e399ef2d973da4726aa8552e3004
---
tx-manager/src/main/resources/application.properties | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tx-manager/src/main/resources/application.properties b/tx-manager/src/main/resources/application.properties
index 19b844599..0fd633269 100644
--- a/tx-manager/src/main/resources/application.properties
+++ b/tx-manager/src/main/resources/application.properties
@@ -12,12 +12,12 @@ spring.resources.static-locations=classpath:/static/
#zookeeper地址
-spring.cloud.zookeeper.connect-string=172.30.77.101:2181
-spring.cloud.zookeeper.discovery.preferIpAddress = true
+#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
+eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
+eureka.instance.prefer-ip-address=true
#######################################redis-start#################################################
#redis 配置文件,根据情况选择集群或者单机模式