diff --git a/.travis.yml b/.travis.yml index 9f96efc8c..f82cf0947 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: java sudo: false jdk: - - openjdk11 +# - openjdk11 - openjdk8 install: true diff --git a/dubbo/README.md b/dubbo/README.md index ddce1f00e..567ef4339 100644 --- a/dubbo/README.md +++ b/dubbo/README.md @@ -1,6 +1,6 @@ # dubbo -How to use Fescar to ensure consistency between Dubbo Microservices ? +How to use Seata to ensure consistency between Dubbo Microservices ? Please see the blog: Engligh: http://dubbo.apache.org/en-us/blog/dubbo-fescar.html diff --git a/dubbo/pom.xml b/dubbo/pom.xml index d179a676a..aed190dac 100644 --- a/dubbo/pom.xml +++ b/dubbo/pom.xml @@ -18,22 +18,22 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - com.alibaba.fescar - fescar-samples + io.seata + seata-samples 1.0.0-SNAPSHOT 4.0.0 - fescar-samples-dubbo + seata-samples-dubbo jar - fescar-samples-dubbo ${project.version} + seata-samples-dubbo ${project.version} - com.alibaba.fescar - fescar-spring + io.seata + seata-spring - com.alibaba.fescar - fescar-dubbo + io.seata + seata-dubbo com.101tec diff --git a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/ApplicationKeeper.java b/dubbo/src/main/java/io/seata/samples/dubbo/ApplicationKeeper.java similarity index 98% rename from tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/ApplicationKeeper.java rename to dubbo/src/main/java/io/seata/samples/dubbo/ApplicationKeeper.java index 50b206c37..aa1232804 100644 --- a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/ApplicationKeeper.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/ApplicationKeeper.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.tcc; +package io.seata.samples.dubbo; + +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.AbstractApplicationContext; -import java.util.concurrent.locks.Condition; -import java.util.concurrent.locks.ReentrantLock; - /** * The type Application keeper. */ diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/Order.java b/dubbo/src/main/java/io/seata/samples/dubbo/Order.java similarity index 96% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/Order.java rename to dubbo/src/main/java/io/seata/samples/dubbo/Order.java index e46a6987d..c25c14aef 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/Order.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/Order.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos; +package io.seata.samples.dubbo; import java.io.Serializable; diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/AccountService.java b/dubbo/src/main/java/io/seata/samples/dubbo/service/AccountService.java similarity index 94% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/AccountService.java rename to dubbo/src/main/java/io/seata/samples/dubbo/service/AccountService.java index eb700b393..724b05211 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/AccountService.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/service/AccountService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.service; +package io.seata.samples.dubbo.service; /** * The interface Account service. diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/BusinessService.java b/dubbo/src/main/java/io/seata/samples/dubbo/service/BusinessService.java similarity index 94% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/BusinessService.java rename to dubbo/src/main/java/io/seata/samples/dubbo/service/BusinessService.java index 96d5274b0..2d6220f14 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/BusinessService.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/service/BusinessService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.service; +package io.seata.samples.dubbo.service; /** * The interface Business service. diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/OrderService.java b/dubbo/src/main/java/io/seata/samples/dubbo/service/OrderService.java similarity index 90% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/OrderService.java rename to dubbo/src/main/java/io/seata/samples/dubbo/service/OrderService.java index 44fc9ca7a..376fab479 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/OrderService.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/service/OrderService.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.service; +package io.seata.samples.dubbo.service; -import com.alibaba.fescar.samples.dubbo.Order; +import io.seata.samples.dubbo.Order; /** * The interface Order service. diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/StorageService.java b/dubbo/src/main/java/io/seata/samples/dubbo/service/StorageService.java similarity index 94% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/StorageService.java rename to dubbo/src/main/java/io/seata/samples/dubbo/service/StorageService.java index e4f1af4f3..35bfbe8f0 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/StorageService.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/service/StorageService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.service; +package io.seata.samples.dubbo.service; /** * The interface Storage service. diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/AccountServiceImpl.java b/dubbo/src/main/java/io/seata/samples/dubbo/service/impl/AccountServiceImpl.java similarity index 84% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/AccountServiceImpl.java rename to dubbo/src/main/java/io/seata/samples/dubbo/service/impl/AccountServiceImpl.java index 73324c623..372987cec 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/AccountServiceImpl.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/service/impl/AccountServiceImpl.java @@ -14,15 +14,13 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.service.impl; +package io.seata.samples.dubbo.service.impl; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.dubbo.service.AccountService; -import com.alibaba.fescar.samples.dubbo.ApplicationKeeper; +import io.seata.core.context.RootContext; +import io.seata.samples.dubbo.service.AccountService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; /** diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/BusinessServiceImpl.java b/dubbo/src/main/java/io/seata/samples/dubbo/service/impl/BusinessServiceImpl.java similarity index 80% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/BusinessServiceImpl.java rename to dubbo/src/main/java/io/seata/samples/dubbo/service/impl/BusinessServiceImpl.java index 13fd35f92..7d885e3f6 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/BusinessServiceImpl.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/service/impl/BusinessServiceImpl.java @@ -14,17 +14,16 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.service.impl; +package io.seata.samples.dubbo.service.impl; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.spring.annotation.GlobalTransactional; -import com.alibaba.fescar.samples.dubbo.service.BusinessService; -import com.alibaba.fescar.samples.dubbo.service.OrderService; -import com.alibaba.fescar.samples.dubbo.service.StorageService; +import io.seata.core.context.RootContext; +import io.seata.spring.annotation.GlobalTransactional; +import io.seata.samples.dubbo.service.BusinessService; +import io.seata.samples.dubbo.service.OrderService; +import io.seata.samples.dubbo.service.StorageService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Please add the follow VM arguments: diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/OrderServiceImpl.java b/dubbo/src/main/java/io/seata/samples/dubbo/service/impl/OrderServiceImpl.java similarity index 89% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/OrderServiceImpl.java rename to dubbo/src/main/java/io/seata/samples/dubbo/service/impl/OrderServiceImpl.java index 5dc180699..13854f45a 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/OrderServiceImpl.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/service/impl/OrderServiceImpl.java @@ -14,21 +14,19 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.service.impl; +package io.seata.samples.dubbo.service.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.dubbo.service.AccountService; -import com.alibaba.fescar.samples.dubbo.ApplicationKeeper; -import com.alibaba.fescar.samples.dubbo.Order; -import com.alibaba.fescar.samples.dubbo.service.OrderService; +import io.seata.core.context.RootContext; +import io.seata.samples.dubbo.service.AccountService; +import io.seata.samples.dubbo.Order; +import io.seata.samples.dubbo.service.OrderService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.PreparedStatementCreator; import org.springframework.jdbc.support.GeneratedKeyHolder; diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/StorageServiceImpl.java b/dubbo/src/main/java/io/seata/samples/dubbo/service/impl/StorageServiceImpl.java similarity index 85% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/StorageServiceImpl.java rename to dubbo/src/main/java/io/seata/samples/dubbo/service/impl/StorageServiceImpl.java index 1b83c1100..254bf53b0 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/impl/StorageServiceImpl.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/service/impl/StorageServiceImpl.java @@ -14,15 +14,13 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.service.impl; +package io.seata.samples.dubbo.service.impl; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.dubbo.ApplicationKeeper; -import com.alibaba.fescar.samples.dubbo.service.StorageService; +import io.seata.core.context.RootContext; +import io.seata.samples.dubbo.service.StorageService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; /** diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboAccountServiceStarter.java b/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboAccountServiceStarter.java similarity index 93% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboAccountServiceStarter.java rename to dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboAccountServiceStarter.java index 163ab4c0c..cdd5e84c7 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboAccountServiceStarter.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboAccountServiceStarter.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.starter; +package io.seata.samples.dubbo.starter; -import com.alibaba.fescar.samples.dubbo.ApplicationKeeper; +import io.seata.samples.dubbo.ApplicationKeeper; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboBusinessTester.java b/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboBusinessTester.java similarity index 92% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboBusinessTester.java rename to dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboBusinessTester.java index dd759cd7f..d270f33c3 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboBusinessTester.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboBusinessTester.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.starter; +package io.seata.samples.dubbo.starter; -import com.alibaba.fescar.samples.dubbo.service.BusinessService; +import io.seata.samples.dubbo.service.BusinessService; import org.springframework.context.support.ClassPathXmlApplicationContext; diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboOrderServiceStarter.java b/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboOrderServiceStarter.java similarity index 92% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboOrderServiceStarter.java rename to dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboOrderServiceStarter.java index a89c7607b..7e138eaa8 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboOrderServiceStarter.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboOrderServiceStarter.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.starter; +package io.seata.samples.dubbo.starter; -import com.alibaba.fescar.samples.dubbo.ApplicationKeeper; +import io.seata.samples.dubbo.ApplicationKeeper; import org.springframework.context.support.ClassPathXmlApplicationContext; diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboStorageServiceStarter.java b/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboStorageServiceStarter.java similarity index 93% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboStorageServiceStarter.java rename to dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboStorageServiceStarter.java index d7354e86b..f2a01d4a5 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/starter/DubboStorageServiceStarter.java +++ b/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboStorageServiceStarter.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.starter; +package io.seata.samples.dubbo.starter; -import com.alibaba.fescar.samples.dubbo.ApplicationKeeper; +import io.seata.samples.dubbo.ApplicationKeeper; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/dubbo/src/main/resources/file.conf b/dubbo/src/main/resources/file.conf index 1a561be00..a38ab369b 100644 --- a/dubbo/src/main/resources/file.conf +++ b/dubbo/src/main/resources/file.conf @@ -20,16 +20,7 @@ transport { worker-thread-size = 8 } } -store { - # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions - max-branch-session-size = 16384 - # globe session size , if exceeded throws exceptions - max-global-session-size = 512 - # file buffer size , if exceeded allocate new buffer - file-write-buffer-cache-size = 16384 - # when recover batch read size - session.reload.read_size = 100 -} + service { #vgroup->rgroup vgroup_mapping.my_test_tx_group = "default" @@ -48,3 +39,25 @@ client { retry.times = 30 } } + + +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/dubbo" + + # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions + max-branch-session-size = 16384 + # globe session size , if exceeded throws exceptions + max-global-session-size = 512 + # file buffer size , if exceeded allocate new buffer + file-write-buffer-cache-size = 16384 + # when recover batch read size + session.reload.read_size = 100 + } +} + diff --git a/dubbo/src/main/resources/spring/dubbo-account-service.xml b/dubbo/src/main/resources/spring/dubbo-account-service.xml index 89eb4c967..edf226c49 100644 --- a/dubbo/src/main/resources/spring/dubbo-account-service.xml +++ b/dubbo/src/main/resources/spring/dubbo-account-service.xml @@ -46,7 +46,7 @@ - + @@ -61,13 +61,13 @@ - + - + - + diff --git a/dubbo/src/main/resources/spring/dubbo-business.xml b/dubbo/src/main/resources/spring/dubbo-business.xml index ade94683e..8414798c2 100644 --- a/dubbo/src/main/resources/spring/dubbo-business.xml +++ b/dubbo/src/main/resources/spring/dubbo-business.xml @@ -28,15 +28,15 @@ - - + + - + - + diff --git a/dubbo/src/main/resources/spring/dubbo-order-service.xml b/dubbo/src/main/resources/spring/dubbo-order-service.xml index bf084bbb8..0887a903b 100644 --- a/dubbo/src/main/resources/spring/dubbo-order-service.xml +++ b/dubbo/src/main/resources/spring/dubbo-order-service.xml @@ -46,7 +46,7 @@ - + @@ -61,16 +61,16 @@ - + - + - + - + diff --git a/dubbo/src/main/resources/spring/dubbo-storage-service.xml b/dubbo/src/main/resources/spring/dubbo-storage-service.xml index e5a57b802..61b05fbeb 100644 --- a/dubbo/src/main/resources/spring/dubbo-storage-service.xml +++ b/dubbo/src/main/resources/spring/dubbo-storage-service.xml @@ -46,7 +46,7 @@ - + @@ -61,13 +61,13 @@ - + - + - + diff --git a/nacos/Readme.md b/nacos/Readme.md index fb4030d27..bbb6dca14 100644 --- a/nacos/Readme.md +++ b/nacos/Readme.md @@ -1,11 +1,11 @@ -# 基于 Fescar 解决微服务架构下数据一致性的实践 +# 基于 Seata 解决微服务架构下数据一致性的实践 -[Fescar](https://github.com/alibaba/fescar) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 +[Seata](https://github.com/seata/seata) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 随着业务的快速发展,应用单体架构暴露出代码可维护性差,容错率低,测试难度大,敏捷交付能力差等诸多问题,微服务应运而生。微服务的诞生一方面解决了上述问题,但是另一方面却引入新的问题,其中主要问题之一就是如何保证微服务间的业务数据一致性。 -本文将通过一个简单的微服务架构的例子,说明业务如何step by step的使用 Fescar、Dubbo 和 Nacos 来保证业务数据的一致性。本文所述的例子中 Dubbo 和 Fescar 注册配置服务中心均使用 Nacos。Fescar 0.2.1+ 开始支持 Nacos 注册配置服务中心。 +本文将通过一个简单的微服务架构的例子,说明业务如何step by step的使用 Seata、Dubbo 和 Nacos 来保证业务数据的一致性。本文所述的例子中 Dubbo 和 Seata 注册配置服务中心均使用 Nacos。Seata 0.2.1+ 开始支持 Nacos 注册配置服务中心。 ## 业务案例 @@ -55,7 +55,7 @@ public interface AccountService { ``` **说明:** 以上三个微服务独立部署。 -### Fescar、Dubbo和Nacos 集成 +### Seata、Dubbo和Nacos 集成 #### Step 1 初始化 MySQL 数据库(需要InnoDB 存储引擎) @@ -79,7 +79,7 @@ jdbc.order.password=xxxx jdbc.order.driver=com.mysql.jdbc.Driver ``` -#### Step 2 创建 undo_log(用于Fescar AT 模式)表和相关业务表 +#### Step 2 创建 undo_log(用于 Seata AT 模式)表和相关业务表 相关建表脚本可在 [resources/sql/](https://github.com/fescar-group/fescar-samples/tree/master/nacos/src/main/resources/sql) 下获取,在相应数据库中执行 [dubbo_biz.sql](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/resources/sql/dubbo_biz.sql) 中的业务建表脚本,在每个数据库执行 [undo_log.sql](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/resources/sql/undo_log.sql) 建表脚本。 @@ -132,25 +132,35 @@ CREATE TABLE `account_tbl` ( ``` **说明:** 需要保证每个物理库都包含 undo_log 表,此处可使用一个物理库来表示上述三个微服务对应的独立逻辑库。 -#### Step 3 引入 Fescar、Dubbo 和 Nacos 相关 POM 依赖 +#### Step 3 引入 Seata、Dubbo 和 Nacos 相关 POM 依赖 ```xml - 0.4.0 + 0.5.0 2.6.5 0.0.2 - com.alibaba.fescar - fescar-spring - ${fescar.version} + io.seata + seata-spring + ${seata.version} - com.alibaba.fescar - fescar-dubbo-alibaba - ${fescar.version} + io.seata + seata-config-nacos + ${seata.version} + + + io.seata + seata-discovery-nacos + ${seata.version} + + + io.seata + seata-dubbo-alibaba + ${seata.version} dubbo @@ -169,7 +179,7 @@ CREATE TABLE `account_tbl` ( ${dubbo.registry.nacos.version} ``` -**说明:** 由于当前 apache-dubbo 与 dubbo-registry-nacos jar存在兼容性问题,需要排除 fescar-dubbo 中的 apache.dubbo 依赖并手动引入 alibaba-dubbo,后续 apache-dubbo(2.7.1+) 将兼容 dubbo-registry-nacos。在Fescar 中 fescar-dubbo jar 支持 apache.dubbo,fescar-dubbo-alibaba jar 支持 alibaba-dubbo。 +**说明:** 由于当前 apache-dubbo 与 dubbo-registry-nacos jar存在兼容性问题,需要排除 seata-dubbo 中的 apache.dubbo 依赖并手动引入 alibaba-dubbo,后续 apache-dubbo(2.7.1+) 将兼容 dubbo-registry-nacos。在 Seata 中 seata-dubbo jar 支持 apache.dubbo,seata-dubbo-alibaba jar 支持 alibaba-dubbo。 #### Step 4 微服务 Provider Spring配置 @@ -179,10 +189,10 @@ CREATE TABLE `account_tbl` ( [dubbo-storage-service.xml](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/resources/spring/dubbo-storage-service.xml) )进行如下配置: -- 配置 Fescar 代理数据源 +- 配置 Seata 代理数据源 ```xml - + @@ -191,7 +201,7 @@ CREATE TABLE `account_tbl` ( ``` -此处需要使用 com.alibaba.fescar.rm.datasource.DataSourceProxy 包装 Druid 数据源作为直接业务数据源,DataSourceProxy 用于业务 sql 的拦截解析并与 TC 交互协调事务操作状态。 +此处需要使用 io.seata.rm.datasource.DataSourceProxy 包装 Druid 数据源作为直接业务数据源,DataSourceProxy 用于业务 sql 的拦截解析并与 TC 交互协调事务操作状态。 - 配置 Dubbo 注册中心 @@ -199,16 +209,16 @@ CREATE TABLE `account_tbl` ( ``` -- 配置 Fescar GlobalTransactionScanner +- 配置 Seata GlobalTransactionScanner ```xml - + ``` 此处构造方法的第一个参数为业务自定义 applicationId,若在单机部署多微服务需要保证 applicationId 唯一。 -构造方法的第二个参数为 Fescar 事务服务逻辑分组,此分组通过配置中心配置项 service.vgroup_mapping.my_test_tx_group 映射到相应的 Fescar-Server 集群名称,然后再根据集群名称.grouplist 获取到可用服务列表。 +构造方法的第二个参数为 Seata 事务服务逻辑分组,此分组通过配置中心配置项 service.vgroup_mapping.my_test_tx_group 映射到相应的 Seata-Server 集群名称,然后再根据集群名称.grouplist 获取到可用服务列表。 #### Step 5 事务发起方配置 @@ -217,7 +227,7 @@ CREATE TABLE `account_tbl` ( 同 Step 4 -- 配置 Fescar GlobalTransactionScanner +- 配置 Seata GlobalTransactionScanner 同 Step 4 @@ -250,13 +260,13 @@ cmd startup.cmd -m standalone 若访问成功说明 Nacos-Server 服务运行成功(默认账号/密码: nacos/nacos) -#### Step 7 启动 Fescar-Server +#### Step 7 启动 Seata-Server -- 下载 Fescar-Server 最新 [release](https://github.com/alibaba/fescar/releases) 包并解压 +- 下载 Seata-Server 最新 [release](https://github.com/seata/seata/releases) 包并解压 -- 初始化 Fescar 配置 +- 初始化 Seata 配置 -进入到 Fescar-Server 解压目录 conf 文件夹下,确认 [nacos-config.txt](https://github.com/alibaba/fescar/blob/develop/server/src/main/resources/nacos-config.txt) 的配置值(一般不需要修改),确认完成后运行 [nacos-config.sh](https://github.com/alibaba/fescar/blob/develop/server/src/main/resources/nacos-config.sh) 脚本初始化配置。 +进入到 Seata-Server 解压目录 conf 文件夹下,确认 [nacos-config.txt](https://github.com/seata/seata/blob/develop/server/src/main/resources/nacos-config.txt) 的配置值(一般不需要修改),确认完成后运行 [nacos-config.sh](https://github.com/seata/seata/blob/develop/server/src/main/resources/nacos-config.sh) 脚本初始化配置。 ```bash sh nacos-config.sh $Nacos-Server-IP @@ -269,13 +279,13 @@ sh nacos-config.sh localhost ``` -脚本执行最后输出 "**init nacos config finished, please start fescar-server.**" 说明推送配置成功。若想进一步确认可登陆Nacos 控制台 配置列表 筛选 Group=FESCAR_GROUP 的配置项。 +脚本执行最后输出 "**init nacos config finished, please start Seata-server.**" 说明推送配置成功。若想进一步确认可登陆Nacos 控制台 配置列表 筛选 Group=SEATA_GROUP 的配置项。 -- 修改 Fescar-server 服务注册方式为 nacos +- 修改 Seata-server 服务注册方式为 nacos -进入到 Fescar-Server 解压目录 conf 文件夹下 [registry.conf](https://github.com/alibaba/fescar/blob/develop/server/src/main/resources/registry.conf) 修改 type="nacos" 并配置 Nacos 的相关属性。 +进入到 Seata-Server 解压目录 conf 文件夹下 [registry.conf](https://github.com/seata/seata/blob/develop/server/src/main/resources/registry.conf) 修改 type="nacos" 并配置 Nacos 的相关属性。 ```properties registry { @@ -317,7 +327,7 @@ config { cluster = "default" } apollo { - app.id = "fescar-server" + app.id = "seata-server" apollo.meta = "http://192.168.1.204:8801" } zk { @@ -339,27 +349,27 @@ config { **file.name**: type = "file" classpath 下配置文件名 -- 运行 Fescar-server +- 运行 Seata-server **Linux/Unix/Mac** ```bash -sh fescar-server.sh $LISTEN_PORT $PATH_FOR_PERSISTENT_DATA $IP(此参数可选) +sh seata-server.sh $LISTEN_PORT $STORE_MODE $IP(此参数可选) ``` **Windows** ```bash -cmd fescar-server.bat $LISTEN_PORT $PATH_FOR_PERSISTENT_DATA $IP(此参数可选) +cmd seata-server.bat $LISTEN_PORT $PATH_FOR_PERSISTENT_DATA $IP(此参数可选) ``` -**$LISTEN_PORT**: Fescar-Server 服务端口 -**$PATH_FOR_PERSISTENT_DATA**: 事务操作记录文件存储路径(已存在路径) -**$IP(可选参数)**: 用于多 IP 环境下指定 Fescar-Server 注册服务的IP +**$LISTEN_PORT**: Seata-Server 服务端口 +**$STORE_MODE**: 事务操作记录存储模式:file、db +**$IP(可选参数)**: 用于多 IP 环境下指定 Seata-Server 注册服务的IP **eg**: -sh fescar-server.sh 8091 /home/admin/fescar/data/ +sh seata-server.sh 8091 file 运行成功后可在 Nacos 控制台看到 服务名 =serverAddr 服务注册列表: @@ -368,17 +378,17 @@ sh fescar-server.sh 8091 /home/admin/fescar/data/ #### Step 8 启动微服务并测试 - 修改业务客户端发现注册方式为 nacos -同Step 7 中[修改 Fescar-server 服务注册方式为 nacos] 步骤 -- 启动 [DubboAccountServiceStarter](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboAccountServiceStarter.java) -- 启动 [DubboOrderServiceStarter](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboOrderServiceStarter.java) -- 启动 [DubboStorageServiceStarter](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboStorageServiceStarter.java) +同Step 7 中[修改 Seata-server 服务注册方式为 nacos] 步骤 +- 启动 [DubboAccountServiceStarter](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/java/io/seata/samples/nacos/starter/DubboAccountServiceStarter.java) +- 启动 [DubboOrderServiceStarter](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/java/io/seata/samples/nacos/starter/DubboOrderServiceStarter.java) +- 启动 [DubboStorageServiceStarter](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/java/io/seata/samples/nacos/starter/DubboStorageServiceStarter.java) 启动完成可在 Nacos 控制台服务列表 看到启动完成的三个 provider -- 启动 [DubboBusinessTester](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboBusinessTester.java) 进行测试 +- 启动 [DubboBusinessTester](https://github.com/fescar-group/fescar-samples/blob/master/nacos/src/main/java/io/seata/samples/nacos/starter/DubboBusinessTester.java) 进行测试 **注意:** 在标注 @GlobalTransactional 注解方法内部显示的抛出异常才会进行事务的回滚。整个 Dubbo 服务调用链路只需要在事务最开始发起方的 service 方法标注注解即可。 @@ -386,7 +396,7 @@ sh fescar-server.sh 8091 /home/admin/fescar/data/ ## 相关链接: 本文 sample 地址: https://github.com/fescar-group/fescar-samples/tree/master/nacos -Fescar: https://github.com/alibaba/fescar +Seata: https://github.com/seata/seata Dubbo: https://github.com/apache/incubator-dubbo Nacos: https://github.com/alibaba/nacos diff --git a/nacos/pom.xml b/nacos/pom.xml index 2d4f60893..96870fd61 100644 --- a/nacos/pom.xml +++ b/nacos/pom.xml @@ -19,29 +19,38 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - fescar-samples - com.alibaba.fescar + io.seata + seata-samples 1.0.0-SNAPSHOT 4.0.0 - fescar-samples-nacos - fescar-samples-nacos ${project.version} + seata-samples-nacos + seata-samples-nacos ${project.version} - 0.4.0 2.6.5 0.0.2 - com.alibaba.fescar - fescar-spring - ${fescar.version} + io.seata + seata-spring + ${seata.version} - com.alibaba.fescar - fescar-dubbo-alibaba - ${fescar.version} + io.seata + seata-config-nacos + ${seata.version} + + + io.seata + seata-discovery-nacos + ${seata.version} + + + io.seata + seata-dubbo-alibaba + ${seata.version} dubbo diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/ApplicationKeeper.java b/nacos/src/main/java/io/seata/samples/nacos/ApplicationKeeper.java similarity index 98% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/ApplicationKeeper.java rename to nacos/src/main/java/io/seata/samples/nacos/ApplicationKeeper.java index 2457272aa..198aee89c 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/ApplicationKeeper.java +++ b/nacos/src/main/java/io/seata/samples/nacos/ApplicationKeeper.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo; +package io.seata.samples.nacos; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/Order.java b/nacos/src/main/java/io/seata/samples/nacos/Order.java similarity index 96% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/Order.java rename to nacos/src/main/java/io/seata/samples/nacos/Order.java index 71a9a8f43..8a8e55c42 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/Order.java +++ b/nacos/src/main/java/io/seata/samples/nacos/Order.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo; +package io.seata.samples.nacos; import java.io.Serializable; diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/AccountService.java b/nacos/src/main/java/io/seata/samples/nacos/service/AccountService.java similarity index 94% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/AccountService.java rename to nacos/src/main/java/io/seata/samples/nacos/service/AccountService.java index 224ec41fa..e32e0955b 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/AccountService.java +++ b/nacos/src/main/java/io/seata/samples/nacos/service/AccountService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.service; +package io.seata.samples.nacos.service; /** * The interface Account service. diff --git a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/BusinessService.java b/nacos/src/main/java/io/seata/samples/nacos/service/BusinessService.java similarity index 94% rename from dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/BusinessService.java rename to nacos/src/main/java/io/seata/samples/nacos/service/BusinessService.java index ea8c5f467..87ba5c02f 100644 --- a/dubbo/src/main/java/com/alibaba/fescar/samples/dubbo/service/BusinessService.java +++ b/nacos/src/main/java/io/seata/samples/nacos/service/BusinessService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.dubbo.service; +package io.seata.samples.nacos.service; /** * The interface Business service. diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/OrderService.java b/nacos/src/main/java/io/seata/samples/nacos/service/OrderService.java similarity index 90% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/OrderService.java rename to nacos/src/main/java/io/seata/samples/nacos/service/OrderService.java index 56a1892ad..60295803c 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/OrderService.java +++ b/nacos/src/main/java/io/seata/samples/nacos/service/OrderService.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.service; +package io.seata.samples.nacos.service; -import com.alibaba.fescar.samples.nacos.Order; +import io.seata.samples.nacos.Order; /** * The interface Order service. diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/StorageService.java b/nacos/src/main/java/io/seata/samples/nacos/service/StorageService.java similarity index 94% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/StorageService.java rename to nacos/src/main/java/io/seata/samples/nacos/service/StorageService.java index 6ed5583c4..63baeee1c 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/StorageService.java +++ b/nacos/src/main/java/io/seata/samples/nacos/service/StorageService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.service; +package io.seata.samples.nacos.service; /** * The interface Storage service. diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/AccountServiceImpl.java b/nacos/src/main/java/io/seata/samples/nacos/service/impl/AccountServiceImpl.java similarity index 90% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/AccountServiceImpl.java rename to nacos/src/main/java/io/seata/samples/nacos/service/impl/AccountServiceImpl.java index 667a8a03c..1e2525cec 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/AccountServiceImpl.java +++ b/nacos/src/main/java/io/seata/samples/nacos/service/impl/AccountServiceImpl.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.service.impl; +package io.seata.samples.nacos.service.impl; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.nacos.service.AccountService; +import io.seata.core.context.RootContext; +import io.seata.samples.nacos.service.AccountService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/BusinessServiceImpl.java b/nacos/src/main/java/io/seata/samples/nacos/service/impl/BusinessServiceImpl.java similarity index 83% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/BusinessServiceImpl.java rename to nacos/src/main/java/io/seata/samples/nacos/service/impl/BusinessServiceImpl.java index c0082cf0e..85e523a8e 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/BusinessServiceImpl.java +++ b/nacos/src/main/java/io/seata/samples/nacos/service/impl/BusinessServiceImpl.java @@ -14,13 +14,13 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.service.impl; +package io.seata.samples.nacos.service.impl; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.nacos.service.BusinessService; -import com.alibaba.fescar.samples.nacos.service.OrderService; -import com.alibaba.fescar.samples.nacos.service.StorageService; -import com.alibaba.fescar.spring.annotation.GlobalTransactional; +import io.seata.core.context.RootContext; +import io.seata.samples.nacos.service.BusinessService; +import io.seata.samples.nacos.service.OrderService; +import io.seata.samples.nacos.service.StorageService; +import io.seata.spring.annotation.GlobalTransactional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/OrderServiceImpl.java b/nacos/src/main/java/io/seata/samples/nacos/service/impl/OrderServiceImpl.java similarity index 92% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/OrderServiceImpl.java rename to nacos/src/main/java/io/seata/samples/nacos/service/impl/OrderServiceImpl.java index 20d64dbec..abe66b07b 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/OrderServiceImpl.java +++ b/nacos/src/main/java/io/seata/samples/nacos/service/impl/OrderServiceImpl.java @@ -14,16 +14,16 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.service.impl; +package io.seata.samples.nacos.service.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.nacos.Order; -import com.alibaba.fescar.samples.nacos.service.AccountService; -import com.alibaba.fescar.samples.nacos.service.OrderService; +import io.seata.core.context.RootContext; +import io.seata.samples.nacos.Order; +import io.seata.samples.nacos.service.AccountService; +import io.seata.samples.nacos.service.OrderService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/StorageServiceImpl.java b/nacos/src/main/java/io/seata/samples/nacos/service/impl/StorageServiceImpl.java similarity index 90% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/StorageServiceImpl.java rename to nacos/src/main/java/io/seata/samples/nacos/service/impl/StorageServiceImpl.java index 1e0cc4b02..8e5722ddf 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/service/impl/StorageServiceImpl.java +++ b/nacos/src/main/java/io/seata/samples/nacos/service/impl/StorageServiceImpl.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.service.impl; +package io.seata.samples.nacos.service.impl; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.nacos.service.StorageService; +import io.seata.core.context.RootContext; +import io.seata.samples.nacos.service.StorageService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboAccountServiceStarter.java b/nacos/src/main/java/io/seata/samples/nacos/starter/DubboAccountServiceStarter.java similarity index 93% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboAccountServiceStarter.java rename to nacos/src/main/java/io/seata/samples/nacos/starter/DubboAccountServiceStarter.java index 0869dbe09..e42b9b79f 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboAccountServiceStarter.java +++ b/nacos/src/main/java/io/seata/samples/nacos/starter/DubboAccountServiceStarter.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.starter; +package io.seata.samples.nacos.starter; -import com.alibaba.fescar.samples.nacos.ApplicationKeeper; +import io.seata.samples.nacos.ApplicationKeeper; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboBusinessTester.java b/nacos/src/main/java/io/seata/samples/nacos/starter/DubboBusinessTester.java similarity index 92% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboBusinessTester.java rename to nacos/src/main/java/io/seata/samples/nacos/starter/DubboBusinessTester.java index 5bbc82f44..cda596400 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboBusinessTester.java +++ b/nacos/src/main/java/io/seata/samples/nacos/starter/DubboBusinessTester.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.starter; +package io.seata.samples.nacos.starter; -import com.alibaba.fescar.samples.nacos.service.BusinessService; +import io.seata.samples.nacos.service.BusinessService; import org.springframework.context.support.ClassPathXmlApplicationContext; diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboOrderServiceStarter.java b/nacos/src/main/java/io/seata/samples/nacos/starter/DubboOrderServiceStarter.java similarity index 92% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboOrderServiceStarter.java rename to nacos/src/main/java/io/seata/samples/nacos/starter/DubboOrderServiceStarter.java index c42e4bc26..4b3284ffa 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboOrderServiceStarter.java +++ b/nacos/src/main/java/io/seata/samples/nacos/starter/DubboOrderServiceStarter.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.starter; +package io.seata.samples.nacos.starter; -import com.alibaba.fescar.samples.nacos.ApplicationKeeper; +import io.seata.samples.nacos.ApplicationKeeper; import org.springframework.context.support.ClassPathXmlApplicationContext; diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboStorageServiceStarter.java b/nacos/src/main/java/io/seata/samples/nacos/starter/DubboStorageServiceStarter.java similarity index 93% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboStorageServiceStarter.java rename to nacos/src/main/java/io/seata/samples/nacos/starter/DubboStorageServiceStarter.java index babf1dcde..c3d80db74 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/starter/DubboStorageServiceStarter.java +++ b/nacos/src/main/java/io/seata/samples/nacos/starter/DubboStorageServiceStarter.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos.starter; +package io.seata.samples.nacos.starter; -import com.alibaba.fescar.samples.nacos.ApplicationKeeper; +import io.seata.samples.nacos.ApplicationKeeper; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/nacos/src/main/resources/file.conf b/nacos/src/main/resources/file.conf index 1a561be00..9cae9f9a8 100644 --- a/nacos/src/main/resources/file.conf +++ b/nacos/src/main/resources/file.conf @@ -20,16 +20,7 @@ transport { worker-thread-size = 8 } } -store { - # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions - max-branch-session-size = 16384 - # globe session size , if exceeded throws exceptions - max-global-session-size = 512 - # file buffer size , if exceeded allocate new buffer - file-write-buffer-cache-size = 16384 - # when recover batch read size - session.reload.read_size = 100 -} + service { #vgroup->rgroup vgroup_mapping.my_test_tx_group = "default" @@ -48,3 +39,32 @@ client { retry.times = 30 } } +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + + file { + dir = "file_store/data" + + # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions + max-branch-session-size = 16384 + # globe session size , if exceeded throws exceptions + max-global-session-size = 512 + # file buffer size , if exceeded allocate new buffer + file-write-buffer-cache-size = 16384 + # when recover batch read size + session.reload.read_size = 100 + } + + ## database store + db { + driver_class = "" + url = "" + user = "" + password = "" + } + +} diff --git a/nacos/src/main/resources/spring/dubbo-account-service.xml b/nacos/src/main/resources/spring/dubbo-account-service.xml index 2e4cf23c2..45d3bfe7a 100644 --- a/nacos/src/main/resources/spring/dubbo-account-service.xml +++ b/nacos/src/main/resources/spring/dubbo-account-service.xml @@ -46,7 +46,7 @@ - + @@ -61,13 +61,13 @@ - + - + - + diff --git a/nacos/src/main/resources/spring/dubbo-business.xml b/nacos/src/main/resources/spring/dubbo-business.xml index 467ad0fb3..946327739 100644 --- a/nacos/src/main/resources/spring/dubbo-business.xml +++ b/nacos/src/main/resources/spring/dubbo-business.xml @@ -28,16 +28,16 @@ - + + interface="io.seata.samples.nacos.service.StorageService"/> - + - + diff --git a/nacos/src/main/resources/spring/dubbo-order-service.xml b/nacos/src/main/resources/spring/dubbo-order-service.xml index 60e749035..f3ccc14e7 100644 --- a/nacos/src/main/resources/spring/dubbo-order-service.xml +++ b/nacos/src/main/resources/spring/dubbo-order-service.xml @@ -46,7 +46,7 @@ - + @@ -61,17 +61,17 @@ - + + interface="io.seata.samples.nacos.service.AccountService"/> - + - + diff --git a/nacos/src/main/resources/spring/dubbo-storage-service.xml b/nacos/src/main/resources/spring/dubbo-storage-service.xml index 339ed465d..7694780e7 100644 --- a/nacos/src/main/resources/spring/dubbo-storage-service.xml +++ b/nacos/src/main/resources/spring/dubbo-storage-service.xml @@ -46,7 +46,7 @@ - + @@ -61,13 +61,13 @@ - + - + - + diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-account/pom.xml b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-account/pom.xml index c65cb92c1..812e1a341 100644 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-account/pom.xml +++ b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-account/pom.xml @@ -2,14 +2,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.alibaba.fescar - nutzboot-dubbo-fescar + io.seata + nutzboot-dubbo-seata 1.0.0-SNAPSHOT nutzboot-dubbo-fescar-account - com.alibaba.fescar + io.seata nutzboot-dubbo-fescar-common ${project.version} diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-common/pom.xml b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-common/pom.xml index bb89fc807..b2bb6ddf1 100644 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-common/pom.xml +++ b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-common/pom.xml @@ -2,8 +2,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.alibaba.fescar - nutzboot-dubbo-fescar + io.seata + nutzboot-dubbo-seata 1.0.0-SNAPSHOT nutzboot-dubbo-fescar-common diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-order/pom.xml b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-order/pom.xml index ba8c6c5f6..f343958fd 100644 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-order/pom.xml +++ b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-order/pom.xml @@ -2,14 +2,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.alibaba.fescar - nutzboot-dubbo-fescar + io.seata + nutzboot-dubbo-seata 1.0.0-SNAPSHOT nutzboot-dubbo-fescar-order - com.alibaba.fescar + io.seata nutzboot-dubbo-fescar-common ${project.version} diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-storage/pom.xml b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-storage/pom.xml index f2619504b..12affe76e 100644 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-storage/pom.xml +++ b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-storage/pom.xml @@ -2,14 +2,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.alibaba.fescar - nutzboot-dubbo-fescar + io.seata + nutzboot-dubbo-seata 1.0.0-SNAPSHOT nutzboot-dubbo-fescar-storage - com.alibaba.fescar + io.seata nutzboot-dubbo-fescar-common ${project.version} diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/pom.xml b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/pom.xml deleted file mode 100644 index 5f1323370..000000000 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - 4.0.0 - - org.nutz - nutzboot-demo-dubbo - 2.0 - - nutzboot-demo-dubbo-rpc-client - - - org.nutz - nutzboot-starter-nutz-mvc - ${project.version} - - - org.nutz - nutzboot-starter-jetty - ${project.version} - - - org.nutz - nutzboot-starter - ${project.version} - - - org.slf4j - slf4j-log4j12 - - - org.nutz - nutzboot-demo-dubbo-common - ${project.version} - - - org.nutz - nutzboot-starter-dubbo - ${project.version} - - - \ No newline at end of file diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/application.properties b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/application.properties deleted file mode 100644 index 08aef92de..000000000 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/application.properties +++ /dev/null @@ -1,2 +0,0 @@ -server.port=8080 -server.host=0.0.0.0 \ No newline at end of file diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/dubbo.xml b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/dubbo.xml deleted file mode 100644 index 1fb747a66..000000000 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/dubbo.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/log4j.properties b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/log4j.properties deleted file mode 100644 index 9fc798df4..000000000 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/log4j.properties +++ /dev/null @@ -1,7 +0,0 @@ -log4j.rootLogger=debug,Console - -log4j.logger.org.eclipse.jetty=info - -log4j.appender.Console=org.apache.log4j.ConsoleAppender -log4j.appender.Console.layout=org.apache.log4j.PatternLayout -log4j.appender.Console.layout.ConversionPattern=[%-5p] %d{HH:mm:ss.SSS} %l - %m%n diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/static/index.html b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/static/index.html deleted file mode 100644 index 279b8e139..000000000 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/bin/src/main/resources/static/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - -Hello, So NB! - - -Hello, So NB! - - \ No newline at end of file diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/pom.xml b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/pom.xml index 38b866d42..c4047a9b3 100644 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/pom.xml +++ b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/pom.xml @@ -2,8 +2,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.alibaba.fescar - nutzboot-dubbo-fescar + io.seata + nutzboot-dubbo-seata 1.0.0-SNAPSHOT nutzboot-dubbo-fescar-web @@ -19,7 +19,7 @@ ${nutzboot.version} - com.alibaba.fescar + io.seata nutzboot-dubbo-fescar-common ${project.version} diff --git a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/src/main/java/io/nutz/demo/dubbo/rpc/service/impl/BusinessServiceImpl.java b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/src/main/java/io/nutz/demo/dubbo/rpc/service/impl/BusinessServiceImpl.java index ba0d571a6..88ee88b18 100644 --- a/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/src/main/java/io/nutz/demo/dubbo/rpc/service/impl/BusinessServiceImpl.java +++ b/nutzboot-dubbo-fescar/nutzboot-dubbo-fescar-web/src/main/java/io/nutz/demo/dubbo/rpc/service/impl/BusinessServiceImpl.java @@ -31,6 +31,7 @@ public class BusinessServiceImpl implements BusinessService { * purchase */ @GlobalTransactional(timeoutMills = 300000, name = "dubbo-demo-tx") + @Override public void purchase(String userId, String commodityCode, int orderCount, boolean dofail) { log.info("purchase begin ... xid: " + RootContext.getXID()); @@ -38,7 +39,8 @@ public void purchase(String userId, String commodityCode, int orderCount, boolea orderService.create(userId, commodityCode, orderCount); // for test - if (dofail) + if (dofail) { throw new RuntimeException("just make it failed"); + } } } \ No newline at end of file diff --git a/nutzboot-dubbo-fescar/pom.xml b/nutzboot-dubbo-fescar/pom.xml index 6553be661..846001c8c 100644 --- a/nutzboot-dubbo-fescar/pom.xml +++ b/nutzboot-dubbo-fescar/pom.xml @@ -1,22 +1,26 @@ 4.0.0 - - com.alibaba.fescar - fescar-samples - 1.0.0-SNAPSHOT - - nutzboot-dubbo-fescar - pom - - nutzboot-dubbo-fescar-common - nutzboot-dubbo-fescar-web - nutzboot-dubbo-fescar-order - nutzboot-dubbo-fescar-account - nutzboot-dubbo-fescar-storage - + + io.seata + nutzboot-dubbo-seata + 1.0.0-SNAPSHOT + + pom + + nutzboot-dubbo-fescar-common + nutzboot-dubbo-fescar-web + nutzboot-dubbo-fescar-order + nutzboot-dubbo-fescar-account + nutzboot-dubbo-fescar-storage + - 2.3.3.v20190329 - 1.7.25 + 0.4.2 + 2.3.3.v20190329 + 1.7.25 + 4.1.24.Final + UTF-8 + 1.8 + 1.8 @@ -53,11 +57,12 @@ com.alibaba.fescar fescar-dubbo-alibaba - ${fescar.version} + ${seata.version} io.netty netty-all + ${netty4.version} mysql @@ -65,4 +70,97 @@ 5.1.42 + + + + + spring-snapshot + Spring Snapshot Repository + https://repo.spring.io/snapshot + + true + + + + mvnrepository + mvnrepository + http://www.mvnrepository.com/ + default + + true + + + true + + + + sonatype + sonatype + http://oss.sonatype.org/ + default + + true + + + true + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + ${maven.compiler.source} + ${maven.compiler.target} + + + + org.apache.maven.plugins + maven-pmd-plugin + 3.8 + + ${project.build.sourceEncoding} + 2 + true + + rulesets/java/ali-comment.xml + rulesets/java/ali-concurrent.xml + rulesets/java/ali-constant.xml + rulesets/java/ali-exception.xml + rulesets/java/ali-flowcontrol.xml + rulesets/java/ali-naming.xml + rulesets/java/ali-oop.xml + rulesets/java/ali-orm.xml + rulesets/java/ali-other.xml + rulesets/java/ali-set.xml + + + + + verify + + check + + + + + + com.alibaba.p3c + p3c-pmd + 1.3.6 + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index a01b2034d..de0e080cf 100644 --- a/pom.xml +++ b/pom.xml @@ -18,12 +18,14 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.alibaba.fescar - fescar-samples + io.seata + seata-samples pom 1.0.0-SNAPSHOT - fescar-samples ${project.version} + seata-samples ${project.version} + 0.5.0 + UTF-8 UTF-8 @@ -50,7 +52,6 @@ 0.0.2 1.0.2 6.4 - 0.4.0 5.1.3.RELEASE 5.1.31 4.1.0 @@ -59,21 +60,22 @@ dubbo springboot nacos - springboot-dubbo-fescar + springboot-dubbo-seata tcc springcloud-jpa-seata + nutzboot-dubbo-fescar - com.alibaba.fescar - fescar-spring - ${fescar.version} + io.seata + seata-spring + ${seata.version} - com.alibaba.fescar - fescar-dubbo - ${fescar.version} + io.seata + seata-dubbo + ${seata.version} org.apache.dubbo @@ -181,6 +183,33 @@ + + + mvnrepository + mvnrepository + http://www.mvnrepository.com/ + default + + true + + + true + + + + sonatype + sonatype + http://oss.sonatype.org/ + default + + true + + + true + + + + diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/AccountDTO.java b/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/AccountDTO.java deleted file mode 100644 index aca5a94ed..000000000 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/AccountDTO.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.alibaba.fescar.samples.integration.common.dto; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * @Author: heshouyou - * @Description 账户信息 - * @Date Created in 2019/1/13 16:39 - */ -@Data -public class AccountDTO implements Serializable { - - private Integer id; - - private String userId; - - private BigDecimal amount; -} diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/BusinessDTO.java b/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/BusinessDTO.java deleted file mode 100644 index 45aabed1a..000000000 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/BusinessDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.alibaba.fescar.samples.integration.common.dto; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * @Author: heshouyou - * @Description - * @Date Created in 2019/1/14 17:26 - */ -@Data -public class BusinessDTO implements Serializable { - - private String userId; - - private String commodityCode; - - private String name; - - private Integer count; - - private BigDecimal amount; -} diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/CommodityDTO.java b/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/CommodityDTO.java deleted file mode 100644 index 6984855c4..000000000 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/CommodityDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.alibaba.fescar.samples.integration.common.dto; - -import lombok.Data; - -import java.io.Serializable; - -/** - * @Author: heshouyou - * @Description 商品信息 - * @Date Created in 2019/1/13 16:25 - */ -@Data -public class CommodityDTO implements Serializable { - - private Integer id; - - private String commodityCode; - - private String name; - - private Integer count; -} diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/OrderDTO.java b/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/OrderDTO.java deleted file mode 100644 index cd6364f02..000000000 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dto/OrderDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.alibaba.fescar.samples.integration.common.dto; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * @Author: heshouyou - * @Description 订单信息 - * @Date Created in 2019/1/13 16:33 - */ -@Data -public class OrderDTO implements Serializable { - - private String orderNo; - - private String userId; - - private String commodityCode; - - private Integer orderCount; - - private BigDecimal orderAmount; -} diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/response/BaseResponse.java b/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/response/BaseResponse.java deleted file mode 100644 index 283c977c4..000000000 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/response/BaseResponse.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.alibaba.fescar.samples.integration.common.response; - -import lombok.Data; - -import java.io.Serializable; - -/** - * 基本返回 - * - * @author: heshouyou - * @date: 2018-07-03 16:46 - */ -@Data -public class BaseResponse implements Serializable { - - private int status = 200; - - private String message; - -} diff --git a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/service/BusinessService.java b/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/service/BusinessService.java deleted file mode 100644 index c424e6a53..000000000 --- a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/service/BusinessService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.alibaba.fescar.samples.integration.call.service; - -import com.alibaba.fescar.samples.integration.common.dto.BusinessDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; - -/** - * @Author: heshouyou - * @Description - * @Date Created in 2019/1/14 17:17 - */ -public interface BusinessService { - - ObjectResponse handleBusiness(BusinessDTO businessDTO); -} diff --git a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/service/ITStorageService.java b/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/service/ITStorageService.java deleted file mode 100644 index d562bbf31..000000000 --- a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/service/ITStorageService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.alibaba.fescar.samples.integration.storage.service; - -import com.alibaba.fescar.samples.integration.common.dto.CommodityDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; -import com.alibaba.fescar.samples.integration.storage.entity.TStorage; -import com.baomidou.mybatisplus.service.IService; - -/** - * 仓库服务 - * @author heshouyou - * @since 2019-01-13 - */ -public interface ITStorageService extends IService { - - /** - * 扣减库存 - */ - ObjectResponse decreaseStorage(CommodityDTO commodityDTO); -} diff --git a/springboot-dubbo-fescar/README.md b/springboot-dubbo-seata/README.md similarity index 59% rename from springboot-dubbo-fescar/README.md rename to springboot-dubbo-seata/README.md index bfcaa917a..4555e6c3d 100644 --- a/springboot-dubbo-fescar/README.md +++ b/springboot-dubbo-seata/README.md @@ -1,12 +1,12 @@ -# 基于阿里Fescar分布式事务解决案例 +# 基于 Seata 分布式事务解决案例 -一、什么是Fescar? +一、什么是 Seata? -Fescar全称为:Fast Easy Commit And Rollback,是阿里巴巴公司基于TXC和GTS于2019年开源的微服务架构分布式事务解决方案。该方案基于java实现、简单易用、性能强悍、业务侵入低,是一款能够解决大多数分布式事务场景的极佳选择。原理解析请关注 : https://github.com/alibaba/fescar +Seata 全称为:Simple Extensible Autonomous Transaction Architecture。该方案基于java实现、简单易用、性能强悍、业务侵入低,是一款能够解决大多数分布式事务场景的极佳选择。原理解析请关注 : https://github.com/seata/seata 二、原理浅析和场景展示 -![FESCAR solution](https://camo.githubusercontent.com/b3a71332ae0a91db7f8616286a69b879fcbea672/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f6c61726b2f302f323031382f706e672f31383836322f313534353239363739313037342d33626365376263652d303235652d343563332d393338362d3762393531333564616465382e706e67) +![SEATA solution](https://camo.githubusercontent.com/b3a71332ae0a91db7f8616286a69b879fcbea672/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f6c61726b2f302f323031382f706e672f31383836322f313534353239363739313037342d33626365376263652d303235652d343563332d393338362d3762393531333564616465382e706e67) ​ 该案例实现的微服务架构下的场景示例图 @@ -14,7 +14,7 @@ Fescar全称为:Fast Easy Commit And Rollback,是阿里巴巴公司基于TXC ![Typical Process](https://camo.githubusercontent.com/0384806afd7c10544c258ae13717e4229942aa13/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f6c61726b2f302f323031382f706e672f31383836322f313534353239363931373838312d32366661626562392d373166612d346633652d386137612d6663333137643333383966342e706e67) -​ Fescar原理图浅析 +​ Seata 原理图浅析 @@ -24,25 +24,25 @@ Fescar全称为:Fast Easy Commit And Rollback,是阿里巴巴公司基于TXC * Durid 1.1.10(阿里巴巴开源高性能数据源连接池) * Mybatis 3.4.6(Mybatis-3) * Dubbo 2.6.5(阿里巴巴开源高性能RPC框架) -* Fescar 0.2.1(阿里巴巴开源分布式事务解决方案,第二个小版本) +* Seata 0.2.1 * Nacos 0.8.0(阿里巴巴开源注册中心/配置中心) 四、实现以及规划 -* 当前版本实现SpringBoot + Dubbo + Mybatis + Nacos + Fescar技术整合,实现如何在微服务架构中使用分布式事务框架Fescar +* 当前版本实现SpringBoot + Dubbo + Mybatis + Nacos + Seata 技术整合,实现如何在微服务架构中使用分布式事务框架 Seata * 之后版本将完善流程,并使用Nacos作为配置中心(现在Nacos只是作为注册中心) -* 接下来版本等到Fescar完善到0.5.0版本后开始支持SringCloud相关技术栈,将实现在Cloud微服务架构中解决分布式事务 +* 接下来版本等到 Seata 完善到0.5.0版本后开始支持SringCloud相关技术栈,将实现在Cloud微服务架构中解决分布式事务 * 计划暂定上述 五、使用该案例说明 -1. 前往Fescar Github官方页面下载最新版本的 https://github.com/alibaba/fescar/releases +1. 前往 Seata Github官方页面下载最新版本的 https://github.com/seata/seata/releases 2. 前往Nacos Github官方页面下载最新版本的 https://github.com/alibaba/nacos/releases 3. clone此项目到本地,使用maven构建导入IDEA编辑器中,配置项目使用的maven仓库和JDK版本(1.8) -4. 将sql目录中的sql脚本导入到mysql数据库中,在此之前先创建数据库 db_gts_fescar,设置用户名密码为root root +4. 将sql目录中的sql脚本导入到mysql数据库中,在此之前先创建数据库 sql/db_seata.sql,设置用户名密码为root root 5. 模块说明: @@ -52,9 +52,9 @@ Fescar全称为:Fast Easy Commit And Rollback,是阿里巴巴公司基于TXC - samples-order 订单微服务模块 - samples-storage 库存微服务模块 -6. 首先启动Nacos和Fescar,中间件具体使用说明详见上述Github官方页 +6. 首先启动Nacos和 Seata,中间件具体使用说明详见上述Github官方页 -7. 分别启动samples-account、samples-order、samples-storage、samples-dubbo-business-call四个模块,确定微服务都注册到Nacos和Fescar +7. 分别启动samples-account、samples-order、samples-storage、samples-dubbo-business-call四个模块,确定微服务都注册到Nacos和 Seata 8. 使用Postman工具请求Post接口地址:http://localhost:8104/business/dubbo/buy 模拟发起下单业务请求,成功后返回200 diff --git a/springboot-dubbo-fescar/pom.xml b/springboot-dubbo-seata/pom.xml similarity index 88% rename from springboot-dubbo-fescar/pom.xml rename to springboot-dubbo-seata/pom.xml index 70968a68a..ef59116df 100644 --- a/springboot-dubbo-fescar/pom.xml +++ b/springboot-dubbo-seata/pom.xml @@ -18,14 +18,14 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - com.alibaba.fescar - fescar-samples + io.seata + seata-samples 1.0.0-SNAPSHOT 4.0.0 - springboot-dubbo-fescar + springboot-dubbo-seata pom - fescar-samples-springboot-dubbo-nacos ${project.version} + seata-samples-springboot-dubbo-nacos ${project.version} samples-common samples-account @@ -36,7 +36,6 @@ 1.8 - 0.4.1 1.1.10 1.3.2 2.3 @@ -102,15 +101,15 @@ - com.alibaba.fescar - fescar-spring - ${fescar.version} + io.seata + seata-spring + ${seata.version} - com.alibaba.fescar - fescar-dubbo-alibaba - ${fescar.version} + io.seata + seata-dubbo-alibaba + ${seata.version} diff --git a/springboot-dubbo-fescar/samples-account/pom.xml b/springboot-dubbo-seata/samples-account/pom.xml similarity index 73% rename from springboot-dubbo-fescar/samples-account/pom.xml rename to springboot-dubbo-seata/samples-account/pom.xml index 62b1ae62a..a97224dc8 100644 --- a/springboot-dubbo-fescar/samples-account/pom.xml +++ b/springboot-dubbo-seata/samples-account/pom.xml @@ -18,8 +18,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - springboot-dubbo-fescar - com.alibaba.fescar + io.seata + springboot-dubbo-seata 1.0.0-SNAPSHOT 4.0.0 @@ -29,7 +29,7 @@ - com.alibaba.fescar + io.seata samples-common ${parent.version} @@ -51,15 +51,38 @@ - com.alibaba.fescar - fescar-spring + io.seata + seata-spring - com.alibaba.fescar - fescar-dubbo-alibaba + io.seata + seata-dubbo-alibaba + + io.seata + seata-config-nacos + ${seata.version} + + + io.seata + seata-discovery-nacos + ${seata.version} + + + io.seata + seata-dubbo-alibaba + ${seata.version} + + + dubbo + org.apache.dubbo + + + + + com.alibaba.boot nacos-config-spring-boot-starter diff --git a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/AccountGtsFescarExampleApplication.java b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/AccountGtsFescarExampleApplication.java similarity index 65% rename from springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/AccountGtsFescarExampleApplication.java rename to springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/AccountGtsFescarExampleApplication.java index 7350daed0..1406f1fea 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/AccountGtsFescarExampleApplication.java +++ b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/AccountGtsFescarExampleApplication.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.integration.account; +package io.seata.samples.integration.account; import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; import org.mybatis.spring.annotation.MapperScan; @@ -6,10 +6,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -@SpringBootApplication(scanBasePackages = "com.alibaba.fescar.samples.integration.account") +@SpringBootApplication(scanBasePackages = "io.seata.samples.integration.account") @EnableDiscoveryClient -@MapperScan({"com.alibaba.fescar.samples.integration.account.mapper"}) -@EnableDubbo(scanBasePackages = "com.alibaba.fescar.samples.integration.account") +@MapperScan({"io.seata.samples.integration.account.mapper"}) +@EnableDubbo(scanBasePackages = "io.seata.samples.integration.account") public class AccountGtsFescarExampleApplication { public static void main(String[] args) { diff --git a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/config/FescarConfig.java b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/config/FescarConfig.java similarity index 94% rename from springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/config/FescarConfig.java rename to springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/config/FescarConfig.java index 88583ee21..aabd8e067 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/config/FescarConfig.java +++ b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/config/FescarConfig.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.integration.account.config; +package io.seata.samples.integration.account.config; import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.fescar.rm.datasource.DataSourceProxy; -import com.alibaba.fescar.spring.annotation.GlobalTransactionScanner; +import io.seata.rm.datasource.DataSourceProxy; +import io.seata.spring.annotation.GlobalTransactionScanner; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory; import org.mybatis.spring.SqlSessionFactoryBean; diff --git a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/controller/TAccountController.java b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/controller/TAccountController.java similarity index 73% rename from springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/controller/TAccountController.java rename to springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/controller/TAccountController.java index 8c93d1a6c..ffe9d1eb2 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/controller/TAccountController.java +++ b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/controller/TAccountController.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.integration.account.controller; +package io.seata.samples.integration.account.controller; -import com.alibaba.fescar.samples.integration.account.service.ITAccountService; -import com.alibaba.fescar.samples.integration.common.dto.AccountDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.account.service.ITAccountService; +import io.seata.samples.integration.common.dto.AccountDTO; +import io.seata.samples.integration.common.response.ObjectResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; diff --git a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/dubbo/AccountDubboServiceImpl.java b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/dubbo/AccountDubboServiceImpl.java similarity index 63% rename from springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/dubbo/AccountDubboServiceImpl.java rename to springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/dubbo/AccountDubboServiceImpl.java index 819cec059..7269afad0 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/dubbo/AccountDubboServiceImpl.java +++ b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/dubbo/AccountDubboServiceImpl.java @@ -1,11 +1,11 @@ -package com.alibaba.fescar.samples.integration.account.dubbo; +package io.seata.samples.integration.account.dubbo; import com.alibaba.dubbo.config.annotation.Service; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.integration.account.service.ITAccountService; -import com.alibaba.fescar.samples.integration.common.dto.AccountDTO; -import com.alibaba.fescar.samples.integration.common.dubbo.AccountDubboService; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; +import io.seata.core.context.RootContext; +import io.seata.samples.integration.account.service.ITAccountService; +import io.seata.samples.integration.common.dto.AccountDTO; +import io.seata.samples.integration.common.dubbo.AccountDubboService; +import io.seata.samples.integration.common.response.ObjectResponse; import org.springframework.beans.factory.annotation.Autowired; /** diff --git a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/entity/TAccount.java b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/entity/TAccount.java similarity index 94% rename from springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/entity/TAccount.java rename to springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/entity/TAccount.java index 464f426cc..f01c8b40d 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/entity/TAccount.java +++ b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/entity/TAccount.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.integration.account.entity; +package io.seata.samples.integration.account.entity; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableId; diff --git a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/mapper/TAccountMapper.java b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/mapper/TAccountMapper.java similarity index 71% rename from springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/mapper/TAccountMapper.java rename to springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/mapper/TAccountMapper.java index 2415fb1fc..1e8a345fe 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/mapper/TAccountMapper.java +++ b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/mapper/TAccountMapper.java @@ -1,7 +1,7 @@ -package com.alibaba.fescar.samples.integration.account.mapper; +package io.seata.samples.integration.account.mapper; -import com.alibaba.fescar.samples.integration.account.entity.TAccount; +import io.seata.samples.integration.account.entity.TAccount; import com.baomidou.mybatisplus.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; diff --git a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/service/ITAccountService.java b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/service/ITAccountService.java similarity index 51% rename from springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/service/ITAccountService.java rename to springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/service/ITAccountService.java index 9aadcece1..6db2b2fbd 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/service/ITAccountService.java +++ b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/service/ITAccountService.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.integration.account.service; +package io.seata.samples.integration.account.service; -import com.alibaba.fescar.samples.integration.account.entity.TAccount; -import com.alibaba.fescar.samples.integration.common.dto.AccountDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.account.entity.TAccount; +import io.seata.samples.integration.common.dto.AccountDTO; +import io.seata.samples.integration.common.response.ObjectResponse; import com.baomidou.mybatisplus.service.IService; /** diff --git a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/service/TAccountServiceImpl.java b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/service/TAccountServiceImpl.java similarity index 68% rename from springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/service/TAccountServiceImpl.java rename to springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/service/TAccountServiceImpl.java index ce3f7b6a9..bdfe2a586 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/java/com/alibaba/fescar/samples/integration/account/service/TAccountServiceImpl.java +++ b/springboot-dubbo-seata/samples-account/src/main/java/io/seata/samples/integration/account/service/TAccountServiceImpl.java @@ -1,10 +1,10 @@ -package com.alibaba.fescar.samples.integration.account.service; +package io.seata.samples.integration.account.service; -import com.alibaba.fescar.samples.integration.account.entity.TAccount; -import com.alibaba.fescar.samples.integration.account.mapper.TAccountMapper; -import com.alibaba.fescar.samples.integration.common.dto.AccountDTO; -import com.alibaba.fescar.samples.integration.common.enums.RspStatusEnum; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.account.entity.TAccount; +import io.seata.samples.integration.account.mapper.TAccountMapper; +import io.seata.samples.integration.common.dto.AccountDTO; +import io.seata.samples.integration.common.enums.RspStatusEnum; +import io.seata.samples.integration.common.response.ObjectResponse; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.stereotype.Service; diff --git a/springboot-dubbo-fescar/samples-account/src/main/resources/application.properties b/springboot-dubbo-seata/samples-account/src/main/resources/application.properties similarity index 100% rename from springboot-dubbo-fescar/samples-account/src/main/resources/application.properties rename to springboot-dubbo-seata/samples-account/src/main/resources/application.properties diff --git a/springboot-dubbo-fescar/samples-storage/src/main/resources/file.conf b/springboot-dubbo-seata/samples-account/src/main/resources/file.conf similarity index 61% rename from springboot-dubbo-fescar/samples-storage/src/main/resources/file.conf rename to springboot-dubbo-seata/samples-account/src/main/resources/file.conf index 1a561be00..d4ef27972 100644 --- a/springboot-dubbo-fescar/samples-storage/src/main/resources/file.conf +++ b/springboot-dubbo-seata/samples-account/src/main/resources/file.conf @@ -20,16 +20,7 @@ transport { worker-thread-size = 8 } } -store { - # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions - max-branch-session-size = 16384 - # globe session size , if exceeded throws exceptions - max-global-session-size = 512 - # file buffer size , if exceeded allocate new buffer - file-write-buffer-cache-size = 16384 - # when recover batch read size - session.reload.read_size = 100 -} + service { #vgroup->rgroup vgroup_mapping.my_test_tx_group = "default" @@ -48,3 +39,31 @@ client { retry.times = 30 } } +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/data" + + # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions + max-branch-session-size = 16384 + # globe session size , if exceeded throws exceptions + max-global-session-size = 512 + # file buffer size , if exceeded allocate new buffer + file-write-buffer-cache-size = 16384 + # when recover batch read size + session.reload.read_size = 100 + } + + ## database store + db { + driver_class = "" + url = "" + user = "" + password = "" + } +} + diff --git a/springboot-dubbo-fescar/samples-account/src/main/resources/mapper/TAccountMapper.xml b/springboot-dubbo-seata/samples-account/src/main/resources/mapper/TAccountMapper.xml similarity index 78% rename from springboot-dubbo-fescar/samples-account/src/main/resources/mapper/TAccountMapper.xml rename to springboot-dubbo-seata/samples-account/src/main/resources/mapper/TAccountMapper.xml index 67bf36313..6e1f45369 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/resources/mapper/TAccountMapper.xml +++ b/springboot-dubbo-seata/samples-account/src/main/resources/mapper/TAccountMapper.xml @@ -1,12 +1,12 @@ - + - + diff --git a/springboot-dubbo-fescar/samples-account/src/main/resources/registry.conf b/springboot-dubbo-seata/samples-account/src/main/resources/registry.conf similarity index 100% rename from springboot-dubbo-fescar/samples-account/src/main/resources/registry.conf rename to springboot-dubbo-seata/samples-account/src/main/resources/registry.conf diff --git a/springboot-dubbo-fescar/samples-common/pom.xml b/springboot-dubbo-seata/samples-common/pom.xml similarity index 93% rename from springboot-dubbo-fescar/samples-common/pom.xml rename to springboot-dubbo-seata/samples-common/pom.xml index e5f8adb91..ce1a10956 100644 --- a/springboot-dubbo-fescar/samples-common/pom.xml +++ b/springboot-dubbo-seata/samples-common/pom.xml @@ -18,8 +18,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - springboot-dubbo-fescar - com.alibaba.fescar + io.seata + springboot-dubbo-seata 1.0.0-SNAPSHOT 4.0.0 diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/aop/GlobalExceptionHandler.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/aop/GlobalExceptionHandler.java similarity index 82% rename from springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/aop/GlobalExceptionHandler.java rename to springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/aop/GlobalExceptionHandler.java index 857edad93..b35ae51f4 100644 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/aop/GlobalExceptionHandler.java +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/aop/GlobalExceptionHandler.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.integration.common.aop; +package io.seata.samples.integration.common.aop; -import com.alibaba.fescar.samples.integration.common.enums.RspStatusEnum; -import com.alibaba.fescar.samples.integration.common.exception.DefaultException; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.common.enums.RspStatusEnum; +import io.seata.samples.integration.common.exception.DefaultException; +import io.seata.samples.integration.common.response.ObjectResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; diff --git a/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/AccountDTO.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/AccountDTO.java new file mode 100644 index 000000000..31de76199 --- /dev/null +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/AccountDTO.java @@ -0,0 +1,45 @@ +package io.seata.samples.integration.common.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author: heshouyou + * @Description 账户信息 + * @Date Created in 2019/1/13 16:39 + */ +@Data +public class AccountDTO implements Serializable { + + private Integer id; + + private String userId; + + private BigDecimal amount; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } +} diff --git a/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/BusinessDTO.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/BusinessDTO.java new file mode 100644 index 000000000..321164cf4 --- /dev/null +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/BusinessDTO.java @@ -0,0 +1,65 @@ +package io.seata.samples.integration.common.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author: heshouyou + * @Description + * @Date Created in 2019/1/14 17:26 + */ +@Data +public class BusinessDTO implements Serializable { + + private String userId; + + private String commodityCode; + + private String name; + + private Integer count; + + private BigDecimal amount; + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getCommodityCode() { + return commodityCode; + } + + public void setCommodityCode(String commodityCode) { + this.commodityCode = commodityCode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } +} diff --git a/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/CommodityDTO.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/CommodityDTO.java new file mode 100644 index 000000000..c4cd214fb --- /dev/null +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/CommodityDTO.java @@ -0,0 +1,54 @@ +package io.seata.samples.integration.common.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author: heshouyou + * @Description 商品信息 + * @Date Created in 2019/1/13 16:25 + */ +@Data +public class CommodityDTO implements Serializable { + + private Integer id; + + private String commodityCode; + + private String name; + + private Integer count; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getCommodityCode() { + return commodityCode; + } + + public void setCommodityCode(String commodityCode) { + this.commodityCode = commodityCode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } +} diff --git a/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/OrderDTO.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/OrderDTO.java new file mode 100644 index 000000000..cfad16075 --- /dev/null +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dto/OrderDTO.java @@ -0,0 +1,65 @@ +package io.seata.samples.integration.common.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author: heshouyou + * @Description 订单信息 + * @Date Created in 2019/1/13 16:33 + */ +@Data +public class OrderDTO implements Serializable { + + private String orderNo; + + private String userId; + + private String commodityCode; + + private Integer orderCount; + + private BigDecimal orderAmount; + + public String getOrderNo() { + return orderNo; + } + + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getCommodityCode() { + return commodityCode; + } + + public void setCommodityCode(String commodityCode) { + this.commodityCode = commodityCode; + } + + public Integer getOrderCount() { + return orderCount; + } + + public void setOrderCount(Integer orderCount) { + this.orderCount = orderCount; + } + + public BigDecimal getOrderAmount() { + return orderAmount; + } + + public void setOrderAmount(BigDecimal orderAmount) { + this.orderAmount = orderAmount; + } +} diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dubbo/AccountDubboService.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dubbo/AccountDubboService.java similarity index 54% rename from springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dubbo/AccountDubboService.java rename to springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dubbo/AccountDubboService.java index 85f8a11d4..a3211891e 100644 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dubbo/AccountDubboService.java +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dubbo/AccountDubboService.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.integration.common.dubbo; +package io.seata.samples.integration.common.dubbo; -import com.alibaba.fescar.samples.integration.common.dto.AccountDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.common.dto.AccountDTO; +import io.seata.samples.integration.common.response.ObjectResponse; /** * @Author: heshouyou diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dubbo/OrderDubboService.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dubbo/OrderDubboService.java similarity index 53% rename from springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dubbo/OrderDubboService.java rename to springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dubbo/OrderDubboService.java index 5e175d75b..2bf98cb21 100644 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dubbo/OrderDubboService.java +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dubbo/OrderDubboService.java @@ -1,7 +1,7 @@ -package com.alibaba.fescar.samples.integration.common.dubbo; +package io.seata.samples.integration.common.dubbo; -import com.alibaba.fescar.samples.integration.common.dto.OrderDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.common.dto.OrderDTO; +import io.seata.samples.integration.common.response.ObjectResponse; /** * @Author: heshouyou diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dubbo/StorageDubboService.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dubbo/StorageDubboService.java similarity index 53% rename from springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dubbo/StorageDubboService.java rename to springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dubbo/StorageDubboService.java index 25bfcc743..9bd8e1387 100644 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/dubbo/StorageDubboService.java +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/dubbo/StorageDubboService.java @@ -1,7 +1,7 @@ -package com.alibaba.fescar.samples.integration.common.dubbo; +package io.seata.samples.integration.common.dubbo; -import com.alibaba.fescar.samples.integration.common.dto.CommodityDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.common.dto.CommodityDTO; +import io.seata.samples.integration.common.response.ObjectResponse; /** * @Author: heshouyou diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/enums/RspStatusEnum.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/enums/RspStatusEnum.java similarity index 92% rename from springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/enums/RspStatusEnum.java rename to springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/enums/RspStatusEnum.java index e1fdd6b30..2d78bc5d0 100644 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/enums/RspStatusEnum.java +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/enums/RspStatusEnum.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.integration.common.enums; +package io.seata.samples.integration.common.enums; /** * The enum Rsp status enum. diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/exception/DefaultException.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/exception/DefaultException.java similarity index 85% rename from springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/exception/DefaultException.java rename to springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/exception/DefaultException.java index cc8410030..9ecebeca1 100644 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/exception/DefaultException.java +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/exception/DefaultException.java @@ -1,7 +1,7 @@ -package com.alibaba.fescar.samples.integration.common.exception; +package io.seata.samples.integration.common.exception; -import com.alibaba.fescar.samples.integration.common.enums.RspStatusEnum; +import io.seata.samples.integration.common.enums.RspStatusEnum; /** * @Author: heshouyou diff --git a/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/response/BaseResponse.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/response/BaseResponse.java new file mode 100644 index 000000000..172e56017 --- /dev/null +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/response/BaseResponse.java @@ -0,0 +1,35 @@ +package io.seata.samples.integration.common.response; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 基本返回 + * + * @author: heshouyou + * @date: 2018-07-03 16:46 + */ +@Data +public class BaseResponse implements Serializable { + + private int status = 200; + + private String message; + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/response/ObjectResponse.java b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/response/ObjectResponse.java similarity index 82% rename from springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/response/ObjectResponse.java rename to springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/response/ObjectResponse.java index 3ae363a63..905fbef1f 100644 --- a/springboot-dubbo-fescar/samples-common/src/main/java/com/alibaba/fescar/samples/integration/common/response/ObjectResponse.java +++ b/springboot-dubbo-seata/samples-common/src/main/java/io/seata/samples/integration/common/response/ObjectResponse.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.integration.common.response; +package io.seata.samples.integration.common.response; import java.io.Serializable; diff --git a/springboot-dubbo-fescar/samples-dubbo-business-call/pom.xml b/springboot-dubbo-seata/samples-dubbo-business-call/pom.xml similarity index 71% rename from springboot-dubbo-fescar/samples-dubbo-business-call/pom.xml rename to springboot-dubbo-seata/samples-dubbo-business-call/pom.xml index ee4b78503..dd19ee013 100644 --- a/springboot-dubbo-fescar/samples-dubbo-business-call/pom.xml +++ b/springboot-dubbo-seata/samples-dubbo-business-call/pom.xml @@ -18,8 +18,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - springboot-dubbo-fescar - com.alibaba.fescar + io.seata + springboot-dubbo-seata 1.0.0-SNAPSHOT 4.0.0 @@ -29,7 +29,7 @@ - com.alibaba.fescar + io.seata samples-common ${parent.version} @@ -51,13 +51,35 @@ - com.alibaba.fescar - fescar-spring + io.seata + seata-spring - com.alibaba.fescar - fescar-dubbo-alibaba + io.seata + seata-dubbo-alibaba + + + + io.seata + seata-config-nacos + ${seata.version} + + + io.seata + seata-discovery-nacos + ${seata.version} + + + io.seata + seata-dubbo-alibaba + ${seata.version} + + + dubbo + org.apache.dubbo + + diff --git a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/DubboGtsFescarExampleApplication.java b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/DubboGtsFescarExampleApplication.java similarity index 70% rename from springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/DubboGtsFescarExampleApplication.java rename to springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/DubboGtsFescarExampleApplication.java index 6ad541be5..19dfe44b6 100644 --- a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/DubboGtsFescarExampleApplication.java +++ b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/DubboGtsFescarExampleApplication.java @@ -1,13 +1,13 @@ -package com.alibaba.fescar.samples.integration.call; +package io.seata.samples.integration.call; import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -@SpringBootApplication(scanBasePackages = "com.alibaba.fescar.samples.integration.call") +@SpringBootApplication(scanBasePackages = "io.seata.samples.integration.call") @EnableDiscoveryClient -@EnableDubbo(scanBasePackages = "com.alibaba.fescar.samples.integration.call") +@EnableDubbo(scanBasePackages = "io.seata.samples.integration.call") public class DubboGtsFescarExampleApplication { public static void main(String[] args) { diff --git a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/config/FescarConfig.java b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/config/FescarConfig.java similarity index 80% rename from springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/config/FescarConfig.java rename to springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/config/FescarConfig.java index 2bb9df4c8..27f759d43 100644 --- a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/config/FescarConfig.java +++ b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/config/FescarConfig.java @@ -1,6 +1,6 @@ -package com.alibaba.fescar.samples.integration.call.config; +package io.seata.samples.integration.call.config; -import com.alibaba.fescar.spring.annotation.GlobalTransactionScanner; +import io.seata.spring.annotation.GlobalTransactionScanner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/controller/BusinessController.java b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/controller/BusinessController.java similarity index 76% rename from springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/controller/BusinessController.java rename to springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/controller/BusinessController.java index ad842c829..4ff91e208 100644 --- a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/controller/BusinessController.java +++ b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/controller/BusinessController.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.integration.call.controller; +package io.seata.samples.integration.call.controller; -import com.alibaba.fescar.samples.integration.call.service.BusinessService; -import com.alibaba.fescar.samples.integration.common.dto.BusinessDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.call.service.BusinessService; +import io.seata.samples.integration.common.dto.BusinessDTO; +import io.seata.samples.integration.common.response.ObjectResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; diff --git a/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/service/BusinessService.java b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/service/BusinessService.java new file mode 100644 index 000000000..ee6c0e5be --- /dev/null +++ b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/service/BusinessService.java @@ -0,0 +1,14 @@ +package io.seata.samples.integration.call.service; + +import io.seata.samples.integration.common.dto.BusinessDTO; +import io.seata.samples.integration.common.response.ObjectResponse; + +/** + * @Author: heshouyou + * @Description + * @Date Created in 2019/1/14 17:17 + */ +public interface BusinessService { + + ObjectResponse handleBusiness(BusinessDTO businessDTO); +} diff --git a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/service/BusinessServiceImpl.java b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/service/BusinessServiceImpl.java similarity index 73% rename from springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/service/BusinessServiceImpl.java rename to springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/service/BusinessServiceImpl.java index a5848b9e3..acdb14402 100644 --- a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/java/com/alibaba/fescar/samples/integration/call/service/BusinessServiceImpl.java +++ b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/java/io/seata/samples/integration/call/service/BusinessServiceImpl.java @@ -1,16 +1,16 @@ -package com.alibaba.fescar.samples.integration.call.service; +package io.seata.samples.integration.call.service; import com.alibaba.dubbo.config.annotation.Reference; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.integration.common.dto.BusinessDTO; -import com.alibaba.fescar.samples.integration.common.dto.CommodityDTO; -import com.alibaba.fescar.samples.integration.common.dto.OrderDTO; -import com.alibaba.fescar.samples.integration.common.dubbo.OrderDubboService; -import com.alibaba.fescar.samples.integration.common.dubbo.StorageDubboService; -import com.alibaba.fescar.samples.integration.common.enums.RspStatusEnum; -import com.alibaba.fescar.samples.integration.common.exception.DefaultException; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; -import com.alibaba.fescar.spring.annotation.GlobalTransactional; +import io.seata.core.context.RootContext; +import io.seata.samples.integration.common.dto.BusinessDTO; +import io.seata.samples.integration.common.dto.CommodityDTO; +import io.seata.samples.integration.common.dto.OrderDTO; +import io.seata.samples.integration.common.dubbo.OrderDubboService; +import io.seata.samples.integration.common.dubbo.StorageDubboService; +import io.seata.samples.integration.common.enums.RspStatusEnum; +import io.seata.samples.integration.common.exception.DefaultException; +import io.seata.samples.integration.common.response.ObjectResponse; +import io.seata.spring.annotation.GlobalTransactional; import org.springframework.stereotype.Service; /** diff --git a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/resources/application.properties b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/resources/application.properties similarity index 100% rename from springboot-dubbo-fescar/samples-dubbo-business-call/src/main/resources/application.properties rename to springboot-dubbo-seata/samples-dubbo-business-call/src/main/resources/application.properties diff --git a/springboot-dubbo-fescar/samples-order/src/main/resources/file.conf b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/resources/file.conf similarity index 61% rename from springboot-dubbo-fescar/samples-order/src/main/resources/file.conf rename to springboot-dubbo-seata/samples-dubbo-business-call/src/main/resources/file.conf index 1a561be00..ce4f02d0e 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/resources/file.conf +++ b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/resources/file.conf @@ -20,16 +20,7 @@ transport { worker-thread-size = 8 } } -store { - # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions - max-branch-session-size = 16384 - # globe session size , if exceeded throws exceptions - max-global-session-size = 512 - # file buffer size , if exceeded allocate new buffer - file-write-buffer-cache-size = 16384 - # when recover batch read size - session.reload.read_size = 100 -} + service { #vgroup->rgroup vgroup_mapping.my_test_tx_group = "default" @@ -48,3 +39,30 @@ client { retry.times = 30 } } +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/data" + + # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions + max-branch-session-size = 16384 + # globe session size , if exceeded throws exceptions + max-global-session-size = 512 + # file buffer size , if exceeded allocate new buffer + file-write-buffer-cache-size = 16384 + # when recover batch read size + session.reload.read_size = 100 + } + + ## database store + db { + driver_class = "" + url = "" + user = "" + password = "" + } +} diff --git a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/resources/registry.conf b/springboot-dubbo-seata/samples-dubbo-business-call/src/main/resources/registry.conf similarity index 100% rename from springboot-dubbo-fescar/samples-dubbo-business-call/src/main/resources/registry.conf rename to springboot-dubbo-seata/samples-dubbo-business-call/src/main/resources/registry.conf diff --git a/springboot-dubbo-fescar/samples-order/pom.xml b/springboot-dubbo-seata/samples-order/pom.xml similarity index 74% rename from springboot-dubbo-fescar/samples-order/pom.xml rename to springboot-dubbo-seata/samples-order/pom.xml index 9c2fd26c4..f8d7d52e6 100644 --- a/springboot-dubbo-fescar/samples-order/pom.xml +++ b/springboot-dubbo-seata/samples-order/pom.xml @@ -18,8 +18,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - springboot-dubbo-fescar - com.alibaba.fescar + io.seata + springboot-dubbo-seata 1.0.0-SNAPSHOT 4.0.0 @@ -29,7 +29,7 @@ - com.alibaba.fescar + io.seata samples-common ${parent.version} @@ -51,13 +51,34 @@ - com.alibaba.fescar - fescar-spring + io.seata + seata-spring - com.alibaba.fescar - fescar-dubbo-alibaba + io.seata + seata-dubbo-alibaba + + + io.seata + seata-config-nacos + ${seata.version} + + + io.seata + seata-discovery-nacos + ${seata.version} + + + io.seata + seata-dubbo-alibaba + ${seata.version} + + + dubbo + org.apache.dubbo + + diff --git a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/OrderGtsFescarExampleApplication.java b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/OrderGtsFescarExampleApplication.java similarity index 65% rename from springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/OrderGtsFescarExampleApplication.java rename to springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/OrderGtsFescarExampleApplication.java index a59084f0f..833485160 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/OrderGtsFescarExampleApplication.java +++ b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/OrderGtsFescarExampleApplication.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.integration.order; +package io.seata.samples.integration.order; import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; import org.mybatis.spring.annotation.MapperScan; @@ -6,10 +6,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -@SpringBootApplication(scanBasePackages = "com.alibaba.fescar.samples.integration.order") +@SpringBootApplication(scanBasePackages = "io.seata.samples.integration.order") @EnableDiscoveryClient -@MapperScan({"com.alibaba.fescar.samples.integration.order.mapper"}) -@EnableDubbo(scanBasePackages = "com.alibaba.fescar.samples.integration.order") +@MapperScan({"io.seata.samples.integration.order.mapper"}) +@EnableDubbo(scanBasePackages = "io.seata.samples.integration.order") public class OrderGtsFescarExampleApplication { public static void main(String[] args) { diff --git a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/config/FescarConfig.java b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/config/FescarConfig.java similarity index 94% rename from springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/config/FescarConfig.java rename to springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/config/FescarConfig.java index d111fcd11..9b2084d8a 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/config/FescarConfig.java +++ b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/config/FescarConfig.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.integration.order.config; +package io.seata.samples.integration.order.config; import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.fescar.rm.datasource.DataSourceProxy; -import com.alibaba.fescar.spring.annotation.GlobalTransactionScanner; +import io.seata.rm.datasource.DataSourceProxy; +import io.seata.spring.annotation.GlobalTransactionScanner; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory; import org.mybatis.spring.SqlSessionFactoryBean; diff --git a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/controller/TOrderController.java b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/controller/TOrderController.java similarity index 73% rename from springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/controller/TOrderController.java rename to springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/controller/TOrderController.java index 50cb94aca..3eb903e63 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/controller/TOrderController.java +++ b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/controller/TOrderController.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.integration.order.controller; +package io.seata.samples.integration.order.controller; -import com.alibaba.fescar.samples.integration.common.dto.OrderDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; -import com.alibaba.fescar.samples.integration.order.service.ITOrderService; +import io.seata.samples.integration.common.dto.OrderDTO; +import io.seata.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.order.service.ITOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; diff --git a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/dubbo/OrderDubboServiceImpl.java b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/dubbo/OrderDubboServiceImpl.java similarity index 63% rename from springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/dubbo/OrderDubboServiceImpl.java rename to springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/dubbo/OrderDubboServiceImpl.java index f13124b57..3dfdc33ef 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/dubbo/OrderDubboServiceImpl.java +++ b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/dubbo/OrderDubboServiceImpl.java @@ -1,12 +1,12 @@ -package com.alibaba.fescar.samples.integration.order.dubbo; +package io.seata.samples.integration.order.dubbo; import com.alibaba.dubbo.config.annotation.Service; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.integration.common.dto.OrderDTO; -import com.alibaba.fescar.samples.integration.common.dubbo.OrderDubboService; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; -import com.alibaba.fescar.samples.integration.order.service.ITOrderService; +import io.seata.core.context.RootContext; +import io.seata.samples.integration.common.dto.OrderDTO; +import io.seata.samples.integration.common.dubbo.OrderDubboService; +import io.seata.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.order.service.ITOrderService; import org.springframework.beans.factory.annotation.Autowired; /** diff --git a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/entity/TOrder.java b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/entity/TOrder.java similarity index 96% rename from springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/entity/TOrder.java rename to springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/entity/TOrder.java index 040ce5dc0..10d01a39e 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/entity/TOrder.java +++ b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/entity/TOrder.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.integration.order.entity; +package io.seata.samples.integration.order.entity; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableId; diff --git a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/mapper/TOrderMapper.java b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/mapper/TOrderMapper.java similarity index 75% rename from springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/mapper/TOrderMapper.java rename to springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/mapper/TOrderMapper.java index 53787dc8c..b8a3431d8 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/mapper/TOrderMapper.java +++ b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/mapper/TOrderMapper.java @@ -1,6 +1,6 @@ -package com.alibaba.fescar.samples.integration.order.mapper; +package io.seata.samples.integration.order.mapper; -import com.alibaba.fescar.samples.integration.order.entity.TOrder; +import io.seata.samples.integration.order.entity.TOrder; import com.baomidou.mybatisplus.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; diff --git a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/service/ITOrderService.java b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/service/ITOrderService.java similarity index 51% rename from springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/service/ITOrderService.java rename to springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/service/ITOrderService.java index 18a62b9f3..32993bbcf 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/service/ITOrderService.java +++ b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/service/ITOrderService.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.integration.order.service; +package io.seata.samples.integration.order.service; -import com.alibaba.fescar.samples.integration.common.dto.OrderDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; -import com.alibaba.fescar.samples.integration.order.entity.TOrder; +import io.seata.samples.integration.common.dto.OrderDTO; +import io.seata.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.order.entity.TOrder; import com.baomidou.mybatisplus.service.IService; /** diff --git a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/service/TOrderServiceImpl.java b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/service/TOrderServiceImpl.java similarity index 78% rename from springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/service/TOrderServiceImpl.java rename to springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/service/TOrderServiceImpl.java index 3968bf752..7824b6134 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/java/com/alibaba/fescar/samples/integration/order/service/TOrderServiceImpl.java +++ b/springboot-dubbo-seata/samples-order/src/main/java/io/seata/samples/integration/order/service/TOrderServiceImpl.java @@ -1,13 +1,13 @@ -package com.alibaba.fescar.samples.integration.order.service; +package io.seata.samples.integration.order.service; import com.alibaba.dubbo.config.annotation.Reference; -import com.alibaba.fescar.samples.integration.common.dto.AccountDTO; -import com.alibaba.fescar.samples.integration.common.dto.OrderDTO; -import com.alibaba.fescar.samples.integration.common.dubbo.AccountDubboService; -import com.alibaba.fescar.samples.integration.common.enums.RspStatusEnum; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; -import com.alibaba.fescar.samples.integration.order.entity.TOrder; -import com.alibaba.fescar.samples.integration.order.mapper.TOrderMapper; +import io.seata.samples.integration.common.dto.AccountDTO; +import io.seata.samples.integration.common.dto.OrderDTO; +import io.seata.samples.integration.common.dubbo.AccountDubboService; +import io.seata.samples.integration.common.enums.RspStatusEnum; +import io.seata.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.order.entity.TOrder; +import io.seata.samples.integration.order.mapper.TOrderMapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; diff --git a/springboot-dubbo-fescar/samples-order/src/main/resources/application.properties b/springboot-dubbo-seata/samples-order/src/main/resources/application.properties similarity index 100% rename from springboot-dubbo-fescar/samples-order/src/main/resources/application.properties rename to springboot-dubbo-seata/samples-order/src/main/resources/application.properties diff --git a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/resources/file.conf b/springboot-dubbo-seata/samples-order/src/main/resources/file.conf similarity index 61% rename from springboot-dubbo-fescar/samples-dubbo-business-call/src/main/resources/file.conf rename to springboot-dubbo-seata/samples-order/src/main/resources/file.conf index 1a561be00..fdddf5c6b 100644 --- a/springboot-dubbo-fescar/samples-dubbo-business-call/src/main/resources/file.conf +++ b/springboot-dubbo-seata/samples-order/src/main/resources/file.conf @@ -20,16 +20,6 @@ transport { worker-thread-size = 8 } } -store { - # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions - max-branch-session-size = 16384 - # globe session size , if exceeded throws exceptions - max-global-session-size = 512 - # file buffer size , if exceeded allocate new buffer - file-write-buffer-cache-size = 16384 - # when recover batch read size - session.reload.read_size = 100 -} service { #vgroup->rgroup vgroup_mapping.my_test_tx_group = "default" @@ -48,3 +38,30 @@ client { retry.times = 30 } } +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/data" + + # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions + max-branch-session-size = 16384 + # globe session size , if exceeded throws exceptions + max-global-session-size = 512 + # file buffer size , if exceeded allocate new buffer + file-write-buffer-cache-size = 16384 + # when recover batch read size + session.reload.read_size = 100 + } + + ## database store + db { + driver_class = "" + url = "" + user = "" + password = "" + } +} diff --git a/springboot-dubbo-fescar/samples-order/src/main/resources/mapper/TOrderMapper.xml b/springboot-dubbo-seata/samples-order/src/main/resources/mapper/TOrderMapper.xml similarity index 78% rename from springboot-dubbo-fescar/samples-order/src/main/resources/mapper/TOrderMapper.xml rename to springboot-dubbo-seata/samples-order/src/main/resources/mapper/TOrderMapper.xml index c27580f3c..44b94ef1a 100644 --- a/springboot-dubbo-fescar/samples-order/src/main/resources/mapper/TOrderMapper.xml +++ b/springboot-dubbo-seata/samples-order/src/main/resources/mapper/TOrderMapper.xml @@ -1,12 +1,12 @@ - + - + @@ -20,7 +20,7 @@ id, order_no, user_id, commodity_code, count, amount - + insert into t_order values(null,#{order.orderNo},#{order.userId},#{order.commodityCode},${order.count},${order.amount}) diff --git a/springboot-dubbo-fescar/samples-order/src/main/resources/registry.conf b/springboot-dubbo-seata/samples-order/src/main/resources/registry.conf similarity index 100% rename from springboot-dubbo-fescar/samples-order/src/main/resources/registry.conf rename to springboot-dubbo-seata/samples-order/src/main/resources/registry.conf diff --git a/springboot-dubbo-fescar/samples-storage/pom.xml b/springboot-dubbo-seata/samples-storage/pom.xml similarity index 74% rename from springboot-dubbo-fescar/samples-storage/pom.xml rename to springboot-dubbo-seata/samples-storage/pom.xml index c695b0134..6f9783f56 100644 --- a/springboot-dubbo-fescar/samples-storage/pom.xml +++ b/springboot-dubbo-seata/samples-storage/pom.xml @@ -18,8 +18,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - springboot-dubbo-fescar - com.alibaba.fescar + io.seata + springboot-dubbo-seata 1.0.0-SNAPSHOT 4.0.0 @@ -29,7 +29,7 @@ - com.alibaba.fescar + io.seata samples-common ${parent.version} @@ -51,13 +51,34 @@ - com.alibaba.fescar - fescar-spring + io.seata + seata-spring - com.alibaba.fescar - fescar-dubbo-alibaba + io.seata + seata-dubbo-alibaba + + + io.seata + seata-config-nacos + ${seata.version} + + + io.seata + seata-discovery-nacos + ${seata.version} + + + io.seata + seata-dubbo-alibaba + ${seata.version} + + + dubbo + org.apache.dubbo + + diff --git a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/StorageGtsFescarExampleApplication.java b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/StorageGtsFescarExampleApplication.java similarity index 65% rename from springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/StorageGtsFescarExampleApplication.java rename to springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/StorageGtsFescarExampleApplication.java index d63e64662..b165828e5 100644 --- a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/StorageGtsFescarExampleApplication.java +++ b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/StorageGtsFescarExampleApplication.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.integration.storage; +package io.seata.samples.integration.storage; import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; import org.mybatis.spring.annotation.MapperScan; @@ -6,10 +6,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -@SpringBootApplication(scanBasePackages = "com.alibaba.fescar.samples.integration.storage") +@SpringBootApplication(scanBasePackages = "io.seata.samples.integration.storage") @EnableDiscoveryClient -@MapperScan({"com.alibaba.fescar.samples.integration.storage.mapper"}) -@EnableDubbo(scanBasePackages = "com.alibaba.fescar.samples.integration.storage") +@MapperScan({"io.seata.samples.integration.storage.mapper"}) +@EnableDubbo(scanBasePackages = "io.seata.samples.integration.storage") public class StorageGtsFescarExampleApplication { public static void main(String[] args) { diff --git a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/config/FescarConfig.java b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/config/FescarConfig.java similarity index 94% rename from springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/config/FescarConfig.java rename to springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/config/FescarConfig.java index 2e4c614b4..b49fb6553 100644 --- a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/config/FescarConfig.java +++ b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/config/FescarConfig.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.integration.storage.config; +package io.seata.samples.integration.storage.config; import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.fescar.rm.datasource.DataSourceProxy; -import com.alibaba.fescar.spring.annotation.GlobalTransactionScanner; +import io.seata.rm.datasource.DataSourceProxy; +import io.seata.spring.annotation.GlobalTransactionScanner; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory; import org.mybatis.spring.SqlSessionFactoryBean; diff --git a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/controller/TStorageController.java b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/controller/TStorageController.java similarity index 74% rename from springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/controller/TStorageController.java rename to springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/controller/TStorageController.java index d905f87ed..26a0855f6 100644 --- a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/controller/TStorageController.java +++ b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/controller/TStorageController.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.integration.storage.controller; +package io.seata.samples.integration.storage.controller; -import com.alibaba.fescar.samples.integration.common.dto.CommodityDTO; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; -import com.alibaba.fescar.samples.integration.storage.service.ITStorageService; +import io.seata.samples.integration.common.dto.CommodityDTO; +import io.seata.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.storage.service.ITStorageService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; diff --git a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/dubbo/StorageDubboServiceImpl.java b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/dubbo/StorageDubboServiceImpl.java similarity index 63% rename from springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/dubbo/StorageDubboServiceImpl.java rename to springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/dubbo/StorageDubboServiceImpl.java index 9718dd19a..81a157918 100644 --- a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/dubbo/StorageDubboServiceImpl.java +++ b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/dubbo/StorageDubboServiceImpl.java @@ -1,11 +1,11 @@ -package com.alibaba.fescar.samples.integration.storage.dubbo; +package io.seata.samples.integration.storage.dubbo; import com.alibaba.dubbo.config.annotation.Service; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.integration.common.dto.CommodityDTO; -import com.alibaba.fescar.samples.integration.common.dubbo.StorageDubboService; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; -import com.alibaba.fescar.samples.integration.storage.service.ITStorageService; +import io.seata.core.context.RootContext; +import io.seata.samples.integration.common.dto.CommodityDTO; +import io.seata.samples.integration.common.dubbo.StorageDubboService; +import io.seata.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.storage.service.ITStorageService; import org.springframework.beans.factory.annotation.Autowired; /** diff --git a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/entity/TStorage.java b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/entity/TStorage.java similarity index 95% rename from springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/entity/TStorage.java rename to springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/entity/TStorage.java index 91bb31986..804603753 100644 --- a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/entity/TStorage.java +++ b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/entity/TStorage.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.integration.storage.entity; +package io.seata.samples.integration.storage.entity; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableId; diff --git a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/mapper/TStorageMapper.java b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/mapper/TStorageMapper.java similarity index 77% rename from springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/mapper/TStorageMapper.java rename to springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/mapper/TStorageMapper.java index f15e96a85..f48ec473b 100644 --- a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/mapper/TStorageMapper.java +++ b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/mapper/TStorageMapper.java @@ -1,6 +1,6 @@ -package com.alibaba.fescar.samples.integration.storage.mapper; +package io.seata.samples.integration.storage.mapper; -import com.alibaba.fescar.samples.integration.storage.entity.TStorage; +import io.seata.samples.integration.storage.entity.TStorage; import com.baomidou.mybatisplus.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; diff --git a/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/service/ITStorageService.java b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/service/ITStorageService.java new file mode 100644 index 000000000..6fe97df77 --- /dev/null +++ b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/service/ITStorageService.java @@ -0,0 +1,19 @@ +package io.seata.samples.integration.storage.service; + +import io.seata.samples.integration.common.dto.CommodityDTO; +import io.seata.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.storage.entity.TStorage; +import com.baomidou.mybatisplus.service.IService; + +/** + * 仓库服务 + * @author heshouyou + * @since 2019-01-13 + */ +public interface ITStorageService extends IService { + + /** + * 扣减库存 + */ + ObjectResponse decreaseStorage(CommodityDTO commodityDTO); +} diff --git a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/service/TStorageServiceImpl.java b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/service/TStorageServiceImpl.java similarity index 68% rename from springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/service/TStorageServiceImpl.java rename to springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/service/TStorageServiceImpl.java index 74231995b..b26f39dbe 100644 --- a/springboot-dubbo-fescar/samples-storage/src/main/java/com/alibaba/fescar/samples/integration/storage/service/TStorageServiceImpl.java +++ b/springboot-dubbo-seata/samples-storage/src/main/java/io/seata/samples/integration/storage/service/TStorageServiceImpl.java @@ -1,10 +1,10 @@ -package com.alibaba.fescar.samples.integration.storage.service; +package io.seata.samples.integration.storage.service; -import com.alibaba.fescar.samples.integration.common.dto.CommodityDTO; -import com.alibaba.fescar.samples.integration.common.enums.RspStatusEnum; -import com.alibaba.fescar.samples.integration.common.response.ObjectResponse; -import com.alibaba.fescar.samples.integration.storage.entity.TStorage; -import com.alibaba.fescar.samples.integration.storage.mapper.TStorageMapper; +import io.seata.samples.integration.common.dto.CommodityDTO; +import io.seata.samples.integration.common.enums.RspStatusEnum; +import io.seata.samples.integration.common.response.ObjectResponse; +import io.seata.samples.integration.storage.entity.TStorage; +import io.seata.samples.integration.storage.mapper.TStorageMapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.stereotype.Service; diff --git a/springboot-dubbo-fescar/samples-storage/src/main/resources/application.properties b/springboot-dubbo-seata/samples-storage/src/main/resources/application.properties similarity index 100% rename from springboot-dubbo-fescar/samples-storage/src/main/resources/application.properties rename to springboot-dubbo-seata/samples-storage/src/main/resources/application.properties diff --git a/springboot-dubbo-seata/samples-storage/src/main/resources/file.conf b/springboot-dubbo-seata/samples-storage/src/main/resources/file.conf new file mode 100644 index 000000000..d4ef27972 --- /dev/null +++ b/springboot-dubbo-seata/samples-storage/src/main/resources/file.conf @@ -0,0 +1,69 @@ +transport { + # tcp udt unix-domain-socket + type = "TCP" + #NIO NATIVE + server = "NIO" + #enable heartbeat + heartbeat = true + #thread factory for netty + thread-factory { + boss-thread-prefix = "NettyBoss" + worker-thread-prefix = "NettyServerNIOWorker" + server-executor-thread-prefix = "NettyServerBizHandler" + share-boss-worker = false + client-selector-thread-prefix = "NettyClientSelector" + client-selector-thread-size = 1 + client-worker-thread-prefix = "NettyClientWorkerThread" + # netty boss thread size,will not be used for UDT + boss-thread-size = 1 + #auto default pin or 8 + worker-thread-size = 8 + } +} + +service { + #vgroup->rgroup + vgroup_mapping.my_test_tx_group = "default" + #only support single node + default.grouplist = "127.0.0.1:8091" + #degrade current not support + enableDegrade = false + #disable + disable = false +} + +client { + async.commit.buffer.limit = 10000 + lock { + retry.internal = 10 + retry.times = 30 + } +} +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/data" + + # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions + max-branch-session-size = 16384 + # globe session size , if exceeded throws exceptions + max-global-session-size = 512 + # file buffer size , if exceeded allocate new buffer + file-write-buffer-cache-size = 16384 + # when recover batch read size + session.reload.read_size = 100 + } + + ## database store + db { + driver_class = "" + url = "" + user = "" + password = "" + } +} + diff --git a/springboot-dubbo-fescar/samples-storage/src/main/resources/mapper/TStorageMapper.xml b/springboot-dubbo-seata/samples-storage/src/main/resources/mapper/TStorageMapper.xml similarity index 80% rename from springboot-dubbo-fescar/samples-storage/src/main/resources/mapper/TStorageMapper.xml rename to springboot-dubbo-seata/samples-storage/src/main/resources/mapper/TStorageMapper.xml index 02656bc8b..3986ef4a5 100644 --- a/springboot-dubbo-fescar/samples-storage/src/main/resources/mapper/TStorageMapper.xml +++ b/springboot-dubbo-seata/samples-storage/src/main/resources/mapper/TStorageMapper.xml @@ -1,12 +1,12 @@ - + - + diff --git a/springboot-dubbo-fescar/samples-storage/src/main/resources/registry.conf b/springboot-dubbo-seata/samples-storage/src/main/resources/registry.conf similarity index 100% rename from springboot-dubbo-fescar/samples-storage/src/main/resources/registry.conf rename to springboot-dubbo-seata/samples-storage/src/main/resources/registry.conf diff --git a/springboot-dubbo-fescar/sql/db_gts_fescar.sql b/springboot-dubbo-seata/sql/db_seata.sql similarity index 100% rename from springboot-dubbo-fescar/sql/db_gts_fescar.sql rename to springboot-dubbo-seata/sql/db_seata.sql diff --git a/springboot/README.md b/springboot/README.md index 03a2c5eb7..7825bca75 100644 --- a/springboot/README.md +++ b/springboot/README.md @@ -1,6 +1,6 @@ # springboot -Integrated fescar into springboot+jpa+dubbo+druid project. +Integrated seata into springboot+jpa+dubbo+druid project. 1. The initial sql file address is :[sql/init_db.sql](https://github.com/fescar-group/fescar-samples/blob/master/springboot/src/main/resources/sql/initial_db.sql) , please initial database instance 2. Configure the Db instance address in [/src/main/resources/application.yml](https://github.com/fescar-group/fescar-samples/blob/master/springboot/src/main/resources/application.yml#L13-L35) diff --git a/springboot/pom.xml b/springboot/pom.xml index 3a2fd3225..a75461541 100644 --- a/springboot/pom.xml +++ b/springboot/pom.xml @@ -18,14 +18,14 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - fescar-samples - com.alibaba.fescar + io.seata + seata-samples 1.0.0-SNAPSHOT 4.0.0 - fescar-samples-springboot + seata-samples-springboot jar - fescar-samples-springboot ${project.version} + seata-samples-springboot ${project.version} 1.8 @@ -35,7 +35,6 @@ 5.0.8.RELEASE 2.0.4.RELEASE 4.12 - 0.4.0 @@ -81,14 +80,14 @@ 0.10 - com.alibaba.fescar - fescar-spring - ${fescar.version} + io.seata + seata-spring + ${seata.version} - com.alibaba.fescar - fescar-dubbo - ${fescar.version} + io.seata + seata-dubbo + ${seata.version} org.apache.curator @@ -188,16 +187,20 @@ zkclient - + - com.alibaba.fescar - fescar-spring + io.seata + seata-spring - com.alibaba.fescar - fescar-dubbo + io.seata + seata-dubbo - + + io.seata + seata-spring + + webapp diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/FescarSpringbootApp.java b/springboot/src/main/java/io/seata/samples/springboot/FescarSpringbootApp.java similarity index 94% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/FescarSpringbootApp.java rename to springboot/src/main/java/io/seata/samples/springboot/FescarSpringbootApp.java index ebcaa2c0e..dd247e2ae 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/FescarSpringbootApp.java +++ b/springboot/src/main/java/io/seata/samples/springboot/FescarSpringbootApp.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot; +package io.seata.samples.springboot; import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration; -import com.alibaba.fescar.samples.springboot.service.AssignService; +import io.seata.samples.springboot.service.AssignService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/config/DruidConfiguration.java b/springboot/src/main/java/io/seata/samples/springboot/config/DruidConfiguration.java similarity index 96% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/config/DruidConfiguration.java rename to springboot/src/main/java/io/seata/samples/springboot/config/DruidConfiguration.java index 7631465d4..a4cb013be 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/config/DruidConfiguration.java +++ b/springboot/src/main/java/io/seata/samples/springboot/config/DruidConfiguration.java @@ -14,15 +14,13 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.config; +package io.seata.samples.springboot.config; -import javax.sql.DataSource; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; -import com.alibaba.fescar.rm.datasource.DataSourceProxy; - +import io.seata.rm.datasource.DataSourceProxy; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistrationBean; @@ -31,6 +29,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; +import javax.sql.DataSource; + /** * The type Druid configuration. */ diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/config/FescarConfiguration.java b/springboot/src/main/java/io/seata/samples/springboot/config/FescarConfiguration.java similarity index 87% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/config/FescarConfiguration.java rename to springboot/src/main/java/io/seata/samples/springboot/config/FescarConfiguration.java index a7d1feea6..042c91efb 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/config/FescarConfiguration.java +++ b/springboot/src/main/java/io/seata/samples/springboot/config/FescarConfiguration.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.config; +package io.seata.samples.springboot.config; -import com.alibaba.fescar.spring.annotation.GlobalTransactionScanner; +import io.seata.spring.annotation.GlobalTransactionScanner; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -38,7 +38,7 @@ public class FescarConfiguration { */ @Bean public GlobalTransactionScanner globalTransactionScanner() { - GlobalTransactionScanner globalTransactionScanner = new GlobalTransactionScanner(applicationId, "receivables"); + GlobalTransactionScanner globalTransactionScanner = new GlobalTransactionScanner(applicationId, "my_test_tx_group"); return globalTransactionScanner; } } diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/AssetService.java b/springboot/src/main/java/io/seata/samples/springboot/service/AssetService.java similarity index 93% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/AssetService.java rename to springboot/src/main/java/io/seata/samples/springboot/service/AssetService.java index ffe217008..3c12b4666 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/AssetService.java +++ b/springboot/src/main/java/io/seata/samples/springboot/service/AssetService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.service; +package io.seata.samples.springboot.service; /** * The interface Asset service. diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/AssignService.java b/springboot/src/main/java/io/seata/samples/springboot/service/AssignService.java similarity index 87% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/AssignService.java rename to springboot/src/main/java/io/seata/samples/springboot/service/AssignService.java index 46f405203..c52c8ac9a 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/AssignService.java +++ b/springboot/src/main/java/io/seata/samples/springboot/service/AssignService.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.service; +package io.seata.samples.springboot.service; -import com.alibaba.fescar.samples.springboot.sys.domain.AssetAssign; +import io.seata.samples.springboot.sys.domain.AssetAssign; /** * The interface Assign service. diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/impl/AssetServiceImpl.java b/springboot/src/main/java/io/seata/samples/springboot/service/impl/AssetServiceImpl.java similarity index 84% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/impl/AssetServiceImpl.java rename to springboot/src/main/java/io/seata/samples/springboot/service/impl/AssetServiceImpl.java index 709ef0575..c3d567bb5 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/impl/AssetServiceImpl.java +++ b/springboot/src/main/java/io/seata/samples/springboot/service/impl/AssetServiceImpl.java @@ -14,16 +14,16 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.service.impl; +package io.seata.samples.springboot.service.impl; import java.math.BigDecimal; import com.alibaba.dubbo.config.annotation.Service; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.springboot.service.AssetService; -import com.alibaba.fescar.samples.springboot.sys.domain.Asset; -import com.alibaba.fescar.samples.springboot.sys.repository.AssetRepository; +import io.seata.core.context.RootContext; +import io.seata.samples.springboot.service.AssetService; +import io.seata.samples.springboot.sys.domain.Asset; +import io.seata.samples.springboot.sys.repository.AssetRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/impl/AssignServiceImpl.java b/springboot/src/main/java/io/seata/samples/springboot/service/impl/AssignServiceImpl.java similarity index 76% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/impl/AssignServiceImpl.java rename to springboot/src/main/java/io/seata/samples/springboot/service/impl/AssignServiceImpl.java index 6b9347652..4676f5b34 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/service/impl/AssignServiceImpl.java +++ b/springboot/src/main/java/io/seata/samples/springboot/service/impl/AssignServiceImpl.java @@ -14,17 +14,17 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.service.impl; +package io.seata.samples.springboot.service.impl; import javax.transaction.Transactional; import com.alibaba.dubbo.config.annotation.Reference; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.springboot.service.AssignService; -import com.alibaba.fescar.samples.springboot.sys.domain.AssetAssign; -import com.alibaba.fescar.samples.springboot.sys.repository.AssignRepository; -import com.alibaba.fescar.spring.annotation.GlobalTransactional; +import io.seata.core.context.RootContext; +import io.seata.samples.springboot.service.AssignService; +import io.seata.samples.springboot.sys.domain.AssetAssign; +import io.seata.samples.springboot.sys.repository.AssignRepository; +import io.seata.spring.annotation.GlobalTransactional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -41,7 +41,7 @@ public class AssignServiceImpl implements AssignService { private AssignRepository assignRepository; @Reference(check = false) - private com.alibaba.fescar.samples.springboot.service.AssetService assetService; + private io.seata.samples.springboot.service.AssetService assetService; @Override @Transactional diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/domain/Asset.java b/springboot/src/main/java/io/seata/samples/springboot/sys/domain/Asset.java similarity index 97% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/domain/Asset.java rename to springboot/src/main/java/io/seata/samples/springboot/sys/domain/Asset.java index e144f5c8f..1e02edcc0 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/domain/Asset.java +++ b/springboot/src/main/java/io/seata/samples/springboot/sys/domain/Asset.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.sys.domain; +package io.seata.samples.springboot.sys.domain; import java.io.Serializable; import java.math.BigDecimal; diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/domain/AssetAssign.java b/springboot/src/main/java/io/seata/samples/springboot/sys/domain/AssetAssign.java similarity index 98% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/domain/AssetAssign.java rename to springboot/src/main/java/io/seata/samples/springboot/sys/domain/AssetAssign.java index 200d30189..1b2bf13f3 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/domain/AssetAssign.java +++ b/springboot/src/main/java/io/seata/samples/springboot/sys/domain/AssetAssign.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.sys.domain; +package io.seata.samples.springboot.sys.domain; import java.io.Serializable; import java.util.Date; diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/repository/AssetRepository.java b/springboot/src/main/java/io/seata/samples/springboot/sys/repository/AssetRepository.java similarity index 88% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/repository/AssetRepository.java rename to springboot/src/main/java/io/seata/samples/springboot/sys/repository/AssetRepository.java index 73b3a2acd..09085f05f 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/repository/AssetRepository.java +++ b/springboot/src/main/java/io/seata/samples/springboot/sys/repository/AssetRepository.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.sys.repository; +package io.seata.samples.springboot.sys.repository; -import com.alibaba.fescar.samples.springboot.sys.domain.Asset; +import io.seata.samples.springboot.sys.domain.Asset; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/repository/AssignRepository.java b/springboot/src/main/java/io/seata/samples/springboot/sys/repository/AssignRepository.java similarity index 88% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/repository/AssignRepository.java rename to springboot/src/main/java/io/seata/samples/springboot/sys/repository/AssignRepository.java index d81bb0b87..5ac38ebe9 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/sys/repository/AssignRepository.java +++ b/springboot/src/main/java/io/seata/samples/springboot/sys/repository/AssignRepository.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.sys.repository; +package io.seata.samples.springboot.sys.repository; -import com.alibaba.fescar.samples.springboot.sys.domain.AssetAssign; +import io.seata.samples.springboot.sys.domain.AssetAssign; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; diff --git a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/web/HomeController.java b/springboot/src/main/java/io/seata/samples/springboot/web/HomeController.java similarity index 91% rename from springboot/src/main/java/com/alibaba/fescar/samples/springboot/web/HomeController.java rename to springboot/src/main/java/io/seata/samples/springboot/web/HomeController.java index 0f8d86500..035dbc93c 100644 --- a/springboot/src/main/java/com/alibaba/fescar/samples/springboot/web/HomeController.java +++ b/springboot/src/main/java/io/seata/samples/springboot/web/HomeController.java @@ -14,11 +14,10 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.springboot.web; +package io.seata.samples.springboot.web; import com.alibaba.dubbo.config.annotation.Reference; -import com.alibaba.fescar.samples.springboot.service.AssetService; - +import io.seata.samples.springboot.service.AssetService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/springboot/src/main/resources/file.conf b/springboot/src/main/resources/file.conf index 1a561be00..21e4614ad 100644 --- a/springboot/src/main/resources/file.conf +++ b/springboot/src/main/resources/file.conf @@ -48,3 +48,31 @@ client { retry.times = 30 } } + +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/data" + + # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions + max-branch-session-size = 16384 + # globe session size , if exceeded throws exceptions + max-global-session-size = 512 + # file buffer size , if exceeded allocate new buffer + file-write-buffer-cache-size = 16384 + # when recover batch read size + session.reload.read_size = 100 + } + + ## database store + db { + driver_class = "" + url = "" + user = "" + password = "" + } +} \ No newline at end of file diff --git a/springcloud-jpa-seata/business-service/pom.xml b/springcloud-jpa-seata/business-service/pom.xml index 28997776f..c9116046d 100755 --- a/springcloud-jpa-seata/business-service/pom.xml +++ b/springcloud-jpa-seata/business-service/pom.xml @@ -2,7 +2,7 @@ - com.alibaba.fescar + io.seata springcloud-jpa-seata 1.0.0-SNAPSHOT diff --git a/springcloud-jpa-seata/order-service/pom.xml b/springcloud-jpa-seata/order-service/pom.xml index 6e22330bf..c131efef7 100755 --- a/springcloud-jpa-seata/order-service/pom.xml +++ b/springcloud-jpa-seata/order-service/pom.xml @@ -2,7 +2,7 @@ - com.alibaba.fescar + io.seata springcloud-jpa-seata 1.0.0-SNAPSHOT diff --git a/springcloud-jpa-seata/order-service/src/main/resources/application.properties b/springcloud-jpa-seata/order-service/src/main/resources/application.properties index 4a6d70143..0558a72a4 100644 --- a/springcloud-jpa-seata/order-service/src/main/resources/application.properties +++ b/springcloud-jpa-seata/order-service/src/main/resources/application.properties @@ -2,8 +2,8 @@ spring.application.name=order-service server.port=8082 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db_order?useSSL=false -spring.datasource.username=root -spring.datasource.password= +spring.datasource.username=mysql +spring.datasource.password=mysql spring.jpa.show-sql: true spring.jpa.format-sql: true diff --git a/springcloud-jpa-seata/pom.xml b/springcloud-jpa-seata/pom.xml index b1985638f..434d4c85c 100755 --- a/springcloud-jpa-seata/pom.xml +++ b/springcloud-jpa-seata/pom.xml @@ -3,22 +3,20 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - - com.alibaba.fescar - fescar-samples - 1.0.0-SNAPSHOT - - + io.seata springcloud-jpa-seata - com.alibaba.fescar + 1.0.0-SNAPSHOT seata-sample Demo project for Seata pom + 0.4.2 UTF-8 1.8 + 1.8 + 1.8 @@ -87,15 +85,87 @@ true + + mvnrepository + mvnrepository + http://www.mvnrepository.com/ + default + + true + + + true + + + + sonatype + sonatype + http://oss.sonatype.org/ + default + + true + + + true + + - - - - org.springframework.boot - spring-boot-maven-plugin - - - + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + ${maven.compiler.source} + ${maven.compiler.target} + + + + org.apache.maven.plugins + maven-pmd-plugin + 3.8 + + ${project.build.sourceEncoding} + 2 + true + + rulesets/java/ali-comment.xml + rulesets/java/ali-concurrent.xml + rulesets/java/ali-constant.xml + rulesets/java/ali-exception.xml + rulesets/java/ali-flowcontrol.xml + rulesets/java/ali-naming.xml + rulesets/java/ali-oop.xml + rulesets/java/ali-orm.xml + rulesets/java/ali-other.xml + rulesets/java/ali-set.xml + + + + + verify + + check + + + + + + com.alibaba.p3c + p3c-pmd + 1.3.6 + + + + + diff --git a/springcloud-jpa-seata/storage-service/pom.xml b/springcloud-jpa-seata/storage-service/pom.xml index 10da3ecf7..8afef3d62 100755 --- a/springcloud-jpa-seata/storage-service/pom.xml +++ b/springcloud-jpa-seata/storage-service/pom.xml @@ -2,7 +2,7 @@ - com.alibaba.fescar + io.seata springcloud-jpa-seata 1.0.0-SNAPSHOT diff --git a/springcloud-jpa-seata/storage-service/src/main/resources/application.properties b/springcloud-jpa-seata/storage-service/src/main/resources/application.properties index 19deaf490..17758f5ab 100644 --- a/springcloud-jpa-seata/storage-service/src/main/resources/application.properties +++ b/springcloud-jpa-seata/storage-service/src/main/resources/application.properties @@ -2,8 +2,8 @@ spring.application.name=storage-service server.port=8081 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db_storage?useSSL=false -spring.datasource.username=root -spring.datasource.password= +spring.datasource.username=mysql +spring.datasource.password=mysql spring.jpa.show-sql: true spring.jpa.format-sql: true diff --git a/springcloud-jpa-seata/user-service/pom.xml b/springcloud-jpa-seata/user-service/pom.xml index 1b2fcfb7b..1199b8862 100755 --- a/springcloud-jpa-seata/user-service/pom.xml +++ b/springcloud-jpa-seata/user-service/pom.xml @@ -1,11 +1,11 @@ - - com.alibaba.fescar - springcloud-jpa-seata - 1.0.0-SNAPSHOT - + + io.seata + springcloud-jpa-seata + 1.0.0-SNAPSHOT + 4.0.0 user-service diff --git a/springcloud-jpa-seata/user-service/src/main/resources/application.properties b/springcloud-jpa-seata/user-service/src/main/resources/application.properties index 3ac2f7dac..96344fe49 100755 --- a/springcloud-jpa-seata/user-service/src/main/resources/application.properties +++ b/springcloud-jpa-seata/user-service/src/main/resources/application.properties @@ -2,8 +2,8 @@ spring.application.name=account-service server.port=8083 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db_account?useSSL=false -spring.datasource.username=root -spring.datasource.password= +spring.datasource.username=mysql +spring.datasource.password=mysql spring.jpa.show-sql: true spring.jpa.format-sql: true diff --git a/tcc/dubbo-tcc-sample/README.MD b/tcc/dubbo-tcc-sample/README.MD index 18d273271..ac1017508 100644 --- a/tcc/dubbo-tcc-sample/README.MD +++ b/tcc/dubbo-tcc-sample/README.MD @@ -1,14 +1,14 @@ -# Fescar TCC 模式 demo 工程 +# Seata TCC 模式 demo 工程 -[Fescar](https://github.com/alibaba/fescar) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 +[Seata](https://github.com/seata/seata) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 ## demo 说明 -基于 Fescar TCC模式,演示分布式事务的提交和回滚; +基于 Seata TCC模式,演示分布式事务的提交和回滚; -本demo中一个分布式事务内会有2个TCC事务参与者,分别是: [TccActionOne](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/TccActionOne.java) 和 [TccActionTwo](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/TccActionTwo.java) ;分布式事务提交则两者均提交,分布式事务回滚则两者均回滚; +本demo中一个分布式事务内会有2个TCC事务参与者,分别是: [TccActionOne](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionOne.java) 和 [TccActionTwo](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionTwo.java) ;分布式事务提交则两者均提交,分布式事务回滚则两者均回滚; 这2个TCC参与者均是 dubbo远程服务,一个应用实现TCC参与者,并将其发布成 ; @@ -49,17 +49,17 @@ public interface TccActionTwo { #### step 1 启动 Fesacr Server -运行 [FescarServerStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java) ,启动 Fescar Server; +运行 [SeataServerStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java) ,启动 Seata Server; #### step 2 启动 dubbo 服务 -运行 [DubboTccProviderStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/starter/DubboTccProviderStarter.java) +运行 [DubboTccProviderStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/starter/DubboTccProviderStarter.java) 本应用发布TCC dubbo服务; #### step 2 启动 TCC Demo() -运行 [DubboTccTransactionStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/starter/DubboTccTransactionStarter.java) , 启动 demo工程; +运行 [DubboTccTransactionStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/starter/DubboTccTransactionStarter.java) , 启动 demo工程; 本应用订阅TCC dubbo服务,发起方分布式事务,调用TCC dubbo参与者;内含TCC 事务提交场景和TCC事务回滚场景的演示; \ No newline at end of file diff --git a/tcc/dubbo-tcc-sample/pom.xml b/tcc/dubbo-tcc-sample/pom.xml index 67429bac4..b30881f61 100644 --- a/tcc/dubbo-tcc-sample/pom.xml +++ b/tcc/dubbo-tcc-sample/pom.xml @@ -18,15 +18,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - com.alibaba.fescar - fescar-samples-tcc + io.seata + seata-samples-tcc 1.0.0-SNAPSHOT - - - - - 4.0.0 dubbo-tcc-sample @@ -34,7 +29,6 @@ dubbo-tcc-sample ${project.version} - 0.4.0 4.3.9.RELEASE 3.4.6 diff --git a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/ApplicationKeeper.java b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/ApplicationKeeper.java similarity index 98% rename from nacos/src/main/java/com/alibaba/fescar/samples/nacos/ApplicationKeeper.java rename to tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/ApplicationKeeper.java index 4c3ba14d5..fe57b7e06 100644 --- a/nacos/src/main/java/com/alibaba/fescar/samples/nacos/ApplicationKeeper.java +++ b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/ApplicationKeeper.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.nacos; - -import java.util.concurrent.locks.Condition; -import java.util.concurrent.locks.ReentrantLock; +package io.seata.samples.tcc.dubbo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.AbstractApplicationContext; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; + /** * The type Application keeper. */ diff --git a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/ResultHolder.java b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/ResultHolder.java similarity index 96% rename from tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/ResultHolder.java rename to tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/ResultHolder.java index ba38a9ce2..97508cbbb 100644 --- a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/ResultHolder.java +++ b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/ResultHolder.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.tcc.dubbo.action; +package io.seata.samples.tcc.dubbo.action; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/TccActionOne.java b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionOne.java similarity index 78% rename from tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/TccActionOne.java rename to tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionOne.java index 14c2de9db..68e18f558 100644 --- a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/TccActionOne.java +++ b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionOne.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.dubbo.action; +package io.seata.samples.tcc.dubbo.action; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContextParameter; -import com.alibaba.fescar.rm.tcc.api.TwoPhaseBusinessAction; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.BusinessActionContextParameter; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; /** * The interface Tcc action one. diff --git a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/TccActionTwo.java b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionTwo.java similarity index 80% rename from tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/TccActionTwo.java rename to tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionTwo.java index 3f6c785ba..a7e57a9b9 100644 --- a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/TccActionTwo.java +++ b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionTwo.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.dubbo.action; +package io.seata.samples.tcc.dubbo.action; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContextParameter; -import com.alibaba.fescar.rm.tcc.api.TwoPhaseBusinessAction; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.BusinessActionContextParameter; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; import java.util.List; diff --git a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/impl/TccActionOneImpl.java b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/impl/TccActionOneImpl.java similarity index 79% rename from tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/impl/TccActionOneImpl.java rename to tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/impl/TccActionOneImpl.java index f3ed9bf47..ea6bf21ab 100644 --- a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/impl/TccActionOneImpl.java +++ b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/impl/TccActionOneImpl.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.dubbo.action.impl; +package io.seata.samples.tcc.dubbo.action.impl; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.samples.tcc.dubbo.action.ResultHolder; -import com.alibaba.fescar.samples.tcc.dubbo.action.TccActionOne; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.dubbo.action.ResultHolder; +import io.seata.samples.tcc.dubbo.action.TccActionOne; /** * The type Tcc action one. diff --git a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/impl/TccActionTwoImpl.java b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/impl/TccActionTwoImpl.java similarity index 82% rename from tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/impl/TccActionTwoImpl.java rename to tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/impl/TccActionTwoImpl.java index 18fbfca7e..7537eaf89 100644 --- a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/action/impl/TccActionTwoImpl.java +++ b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/impl/TccActionTwoImpl.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.dubbo.action.impl; +package io.seata.samples.tcc.dubbo.action.impl; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.samples.tcc.dubbo.action.ResultHolder; -import com.alibaba.fescar.samples.tcc.dubbo.action.TccActionTwo; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.dubbo.action.ResultHolder; +import io.seata.samples.tcc.dubbo.action.TccActionTwo; import java.util.List; diff --git a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/service/TccTransactionService.java b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/service/TccTransactionService.java similarity index 87% rename from tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/service/TccTransactionService.java rename to tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/service/TccTransactionService.java index 23e726a07..fe7eabe9a 100644 --- a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/service/TccTransactionService.java +++ b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/service/TccTransactionService.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.tcc.dubbo.service; +package io.seata.samples.tcc.dubbo.service; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.tcc.dubbo.action.TccActionOne; -import com.alibaba.fescar.samples.tcc.dubbo.action.TccActionTwo; -import com.alibaba.fescar.spring.annotation.GlobalTransactional; +import io.seata.core.context.RootContext; +import io.seata.samples.tcc.dubbo.action.TccActionOne; +import io.seata.samples.tcc.dubbo.action.TccActionTwo; +import io.seata.spring.annotation.GlobalTransactional; import java.util.ArrayList; import java.util.List; diff --git a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/starter/DubboTccProviderStarter.java b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/starter/DubboTccProviderStarter.java similarity index 73% rename from tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/starter/DubboTccProviderStarter.java rename to tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/starter/DubboTccProviderStarter.java index 79d2be0a8..1fab8ab23 100644 --- a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/starter/DubboTccProviderStarter.java +++ b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/starter/DubboTccProviderStarter.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.tcc.dubbo.starter; +package io.seata.samples.tcc.dubbo.starter; -import com.alibaba.fescar.common.util.StringUtils; -import com.alibaba.fescar.samples.tcc.dubbo.ApplicationKeeper; -import com.alibaba.fescar.samples.tcc.dubbo.action.ResultHolder; -import com.alibaba.fescar.samples.tcc.dubbo.service.TccTransactionService; +import io.seata.common.util.StringUtils; +import io.seata.samples.tcc.dubbo.ApplicationKeeper; +import io.seata.samples.tcc.dubbo.action.ResultHolder; +import io.seata.samples.tcc.dubbo.service.TccTransactionService; import org.apache.curator.test.TestingServer; import org.springframework.context.ApplicationContext; import org.springframework.context.support.AbstractApplicationContext; @@ -33,7 +33,7 @@ public static void main(String[] args) throws Exception { mockZKServer(); ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext( - new String[] {"spring/fescar-tcc.xml", "spring/fescar-dubbo-provider.xml"}); + new String[] {"spring/seata-tcc.xml", "spring/seata-dubbo-provider.xml"}); new ApplicationKeeper(applicationContext).keep(); } diff --git a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/starter/DubboTccTransactionStarter.java b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/starter/DubboTccTransactionStarter.java similarity index 85% rename from tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/starter/DubboTccTransactionStarter.java rename to tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/starter/DubboTccTransactionStarter.java index bf023047a..3208799db 100644 --- a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/starter/DubboTccTransactionStarter.java +++ b/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/starter/DubboTccTransactionStarter.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.tcc.dubbo.starter; +package io.seata.samples.tcc.dubbo.starter; -import com.alibaba.fescar.common.util.StringUtils; -import com.alibaba.fescar.samples.tcc.dubbo.ApplicationKeeper; -import com.alibaba.fescar.samples.tcc.dubbo.action.ResultHolder; -import com.alibaba.fescar.samples.tcc.dubbo.service.TccTransactionService; +import io.seata.common.util.StringUtils; +import io.seata.samples.tcc.dubbo.ApplicationKeeper; +import io.seata.samples.tcc.dubbo.action.ResultHolder; +import io.seata.samples.tcc.dubbo.service.TccTransactionService; import org.apache.curator.test.TestingServer; import org.springframework.context.ApplicationContext; import org.springframework.context.support.AbstractApplicationContext; @@ -41,7 +41,7 @@ public class DubboTccTransactionStarter { public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext( - new String[] {"spring/fescar-tcc.xml", "spring/fescar-dubbo-reference.xml"}); + new String[] {"spring/seata-tcc.xml", "spring/seata-dubbo-reference.xml"}); tccTransactionService = (TccTransactionService) applicationContext.getBean("tccTransactionService" ); diff --git a/tcc/dubbo-tcc-sample/src/main/resources/file.conf b/tcc/dubbo-tcc-sample/src/main/resources/file.conf index d1577ff9e..4084e4724 100644 --- a/tcc/dubbo-tcc-sample/src/main/resources/file.conf +++ b/tcc/dubbo-tcc-sample/src/main/resources/file.conf @@ -37,3 +37,15 @@ client { retry.times = 30 } } + +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/tcc/dubbo" + } +} + diff --git a/tcc/dubbo-tcc-sample/src/main/resources/spring/fescar-dubbo-provider.xml b/tcc/dubbo-tcc-sample/src/main/resources/spring/seata-dubbo-provider.xml similarity index 77% rename from tcc/dubbo-tcc-sample/src/main/resources/spring/fescar-dubbo-provider.xml rename to tcc/dubbo-tcc-sample/src/main/resources/spring/seata-dubbo-provider.xml index 346e5c0d6..2703c58f9 100644 --- a/tcc/dubbo-tcc-sample/src/main/resources/spring/fescar-dubbo-provider.xml +++ b/tcc/dubbo-tcc-sample/src/main/resources/spring/seata-dubbo-provider.xml @@ -31,15 +31,15 @@ - + - + - + - + \ No newline at end of file diff --git a/tcc/dubbo-tcc-sample/src/main/resources/spring/fescar-dubbo-reference.xml b/tcc/dubbo-tcc-sample/src/main/resources/spring/seata-dubbo-reference.xml similarity index 77% rename from tcc/dubbo-tcc-sample/src/main/resources/spring/fescar-dubbo-reference.xml rename to tcc/dubbo-tcc-sample/src/main/resources/spring/seata-dubbo-reference.xml index 3cedde6df..33d139956 100644 --- a/tcc/dubbo-tcc-sample/src/main/resources/spring/fescar-dubbo-reference.xml +++ b/tcc/dubbo-tcc-sample/src/main/resources/spring/seata-dubbo-reference.xml @@ -31,16 +31,16 @@ - + - + - + - + diff --git a/tcc/dubbo-tcc-sample/src/main/resources/spring/fescar-tcc.xml b/tcc/dubbo-tcc-sample/src/main/resources/spring/seata-tcc.xml similarity index 74% rename from tcc/dubbo-tcc-sample/src/main/resources/spring/fescar-tcc.xml rename to tcc/dubbo-tcc-sample/src/main/resources/spring/seata-tcc.xml index 420510d29..80e93b56c 100644 --- a/tcc/dubbo-tcc-sample/src/main/resources/spring/fescar-tcc.xml +++ b/tcc/dubbo-tcc-sample/src/main/resources/spring/seata-tcc.xml @@ -22,15 +22,15 @@ http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd" default-autowire="byName"> - + - + - + - + \ No newline at end of file diff --git a/tcc/dubbo-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServer.java b/tcc/dubbo-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServer.java deleted file mode 100644 index 7a6de23c7..000000000 --- a/tcc/dubbo-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServer.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.alibaba.fescar.samples.tcc; - -import com.alibaba.fescar.server.Server; - -import java.io.File; -import java.io.IOException; - -/** - * Mock a fescar server - * - * @author zhangsen - */ -public class FescarServer { - - /** - * The Server. - */ - Server server = null; - - /** - * Init. - * - * @throws IOException the io exception - */ - public void init() throws IOException { - server = new Server(); - String dataPath = new StringBuilder() - .append(System.getProperty("user.home")).append(File.separator) - .append("fescar").append(File.separator) - .append("dubbo").append(File.separator) - .append("data").toString(); - server.main(new String[]{"8091", dataPath, "127.0.0.1"}); - } -} diff --git a/tcc/dubbo-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java b/tcc/dubbo-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java deleted file mode 100644 index d4d798313..000000000 --- a/tcc/dubbo-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.alibaba.fescar.samples.tcc; - - -import java.io.IOException; - -/** - * Mock a fescar server - * - * @author zhangsen - */ -public class FescarServerStarter { - - /** - * The entry point of application. - * - * @param args the input arguments - * @throws IOException the io exception - */ - public static void main(String[] args) throws IOException { - new FescarServer().init(); - } - -} diff --git a/tcc/dubbo-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java b/tcc/dubbo-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java new file mode 100644 index 000000000..c350b4a9f --- /dev/null +++ b/tcc/dubbo-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java @@ -0,0 +1,32 @@ +package io.seata.samples.tcc; + + +import io.seata.core.store.StoreMode; +import io.seata.server.Server; + +import java.io.IOException; + +/** + * Mock a seata server + * + * @author zhangsen + */ +public class SeataServerStarter { + + /** + * The Server. + */ + static Server server = null; + + /** + * The entry point of application. + * + * @param args the input arguments + * @throws IOException the io exception + */ + public static void main(String[] args) throws IOException { + server = new Server(); + server.main(new String[]{"8091", StoreMode.FILE.name(), "127.0.0.1"}); + } + +} diff --git a/tcc/local-tcc-sample/README.MD b/tcc/local-tcc-sample/README.MD index e9cbf04b2..047925824 100644 --- a/tcc/local-tcc-sample/README.MD +++ b/tcc/local-tcc-sample/README.MD @@ -1,14 +1,14 @@ -# Fescar TCC 模式 demo 工程 +# Seata TCC 模式 demo 工程 -[Fescar](https://github.com/alibaba/fescar) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 +[Seata](https://github.com/seata/seata) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 ## demo 说明 -基于 Fescar TCC模式,演示分布式事务的提交和回滚; +基于 Seata TCC模式,演示分布式事务的提交和回滚; -本demo中一个分布式事务内会有2个TCC事务参与者,分别是: [TccActionOne](https://github.com/fescar-group/fescar-samples/blob/master/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/TccActionOne.java) 和 [TccActionTwo](https://github.com/fescar-group/fescar-samples/blob/master/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/TccActionTwo.java) ;分布式事务提交则两者均提交,分布式事务回滚则两者均回滚; +本demo中一个分布式事务内会有2个TCC事务参与者,分别是: [TccActionOne](https://github.com/fescar-group/fescar-samples/blob/master/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/TccActionOne.java) 和 [TccActionTwo](https://github.com/fescar-group/fescar-samples/blob/master/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/TccActionTwo.java) ;分布式事务提交则两者均提交,分布式事务回滚则两者均回滚; 这2个TCC参与者均是 本地bean(非远程RPC服务),本地TCC bean需要在 接口定义中添加 @LocalTCC 注解,其定义如下: @@ -48,10 +48,10 @@ public interface TccActionTwo { #### step 1 启动 Fesacr Server -运行 [FescarServerStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/local-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java) ,启动 Fescar Server; +运行 [SeataServerStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/local-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java) ,启动 Seata Server; #### step 2 启动 TCC Demo -运行 [LocalTccTransactionStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/starter/LocalTccTransactionStarter.java) , 启动 demo工程; +运行 [LocalTccTransactionStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/starter/LocalTccTransactionStarter.java) , 启动 demo工程; 内含TCC 事务提交场景和TCC事务回滚场景的演示; \ No newline at end of file diff --git a/tcc/local-tcc-sample/pom.xml b/tcc/local-tcc-sample/pom.xml index 69d86f136..09b197ded 100644 --- a/tcc/local-tcc-sample/pom.xml +++ b/tcc/local-tcc-sample/pom.xml @@ -18,8 +18,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - com.alibaba.fescar - fescar-samples-tcc + io.seata + seata-samples-tcc 1.0.0-SNAPSHOT 4.0.0 @@ -28,7 +28,11 @@ local-tcc-sample ${project.version} - + + org.slf4j + slf4j-api + 1.7.7 + diff --git a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/ApplicationKeeper.java b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/ApplicationKeeper.java similarity index 98% rename from tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/ApplicationKeeper.java rename to tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/ApplicationKeeper.java index aff74de1e..225634fcd 100644 --- a/tcc/dubbo-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/dubbo/ApplicationKeeper.java +++ b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/ApplicationKeeper.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.tcc.dubbo; +package io.seata.samples.tcc; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/ResultHolder.java b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/ResultHolder.java similarity index 96% rename from tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/ResultHolder.java rename to tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/ResultHolder.java index f76c5b84e..79ea955f8 100644 --- a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/ResultHolder.java +++ b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/ResultHolder.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.tcc.action; +package io.seata.samples.tcc.action; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/TccActionOne.java b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/TccActionOne.java similarity index 79% rename from tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/TccActionOne.java rename to tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/TccActionOne.java index aa262f21b..288473b74 100644 --- a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/TccActionOne.java +++ b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/TccActionOne.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.action; +package io.seata.samples.tcc.action; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.rm.tcc.api.LocalTCC; -import com.alibaba.fescar.rm.tcc.api.TwoPhaseBusinessAction; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.LocalTCC; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; /** * The interface Tcc action one. diff --git a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/TccActionTwo.java b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/TccActionTwo.java similarity index 79% rename from tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/TccActionTwo.java rename to tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/TccActionTwo.java index a7dfabda7..c6220405c 100644 --- a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/TccActionTwo.java +++ b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/TccActionTwo.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.action; +package io.seata.samples.tcc.action; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.rm.tcc.api.LocalTCC; -import com.alibaba.fescar.rm.tcc.api.TwoPhaseBusinessAction; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.LocalTCC; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; /** * The interface Tcc action two. diff --git a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/impl/TccActionOneImpl.java b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/impl/TccActionOneImpl.java similarity index 79% rename from tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/impl/TccActionOneImpl.java rename to tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/impl/TccActionOneImpl.java index 2dff2c642..da9fe9098 100644 --- a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/impl/TccActionOneImpl.java +++ b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/impl/TccActionOneImpl.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.action.impl; +package io.seata.samples.tcc.action.impl; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.samples.tcc.action.ResultHolder; -import com.alibaba.fescar.samples.tcc.action.TccActionOne; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.action.ResultHolder; +import io.seata.samples.tcc.action.TccActionOne; /** * The type Tcc action one. diff --git a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/impl/TccActionTwoImpl.java b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/impl/TccActionTwoImpl.java similarity index 79% rename from tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/impl/TccActionTwoImpl.java rename to tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/impl/TccActionTwoImpl.java index 4debfb37f..db38ae64d 100644 --- a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/impl/TccActionTwoImpl.java +++ b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/action/impl/TccActionTwoImpl.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.action.impl; +package io.seata.samples.tcc.action.impl; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.samples.tcc.action.ResultHolder; -import com.alibaba.fescar.samples.tcc.action.TccActionTwo; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.action.ResultHolder; +import io.seata.samples.tcc.action.TccActionTwo; /** * The type Tcc action two. diff --git a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/service/TccTransactionService.java b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/service/TccTransactionService.java similarity index 86% rename from tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/service/TccTransactionService.java rename to tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/service/TccTransactionService.java index a1eba29fb..6d3c11c5e 100644 --- a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/service/TccTransactionService.java +++ b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/service/TccTransactionService.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.tcc.service; +package io.seata.samples.tcc.service; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.tcc.action.TccActionOne; -import com.alibaba.fescar.samples.tcc.action.TccActionTwo; -import com.alibaba.fescar.spring.annotation.GlobalTransactional; +import io.seata.core.context.RootContext; +import io.seata.samples.tcc.action.TccActionOne; +import io.seata.samples.tcc.action.TccActionTwo; +import io.seata.spring.annotation.GlobalTransactional; import java.util.Map; diff --git a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/starter/LocalTccTransactionStarter.java b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/starter/LocalTccTransactionStarter.java similarity index 86% rename from tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/starter/LocalTccTransactionStarter.java rename to tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/starter/LocalTccTransactionStarter.java index 0e9626080..7d92e584e 100644 --- a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/starter/LocalTccTransactionStarter.java +++ b/tcc/local-tcc-sample/src/main/java/io/seata/samples/tcc/starter/LocalTccTransactionStarter.java @@ -1,11 +1,11 @@ -package com.alibaba.fescar.samples.tcc.starter; - -import com.alibaba.fescar.common.util.StringUtils; -import com.alibaba.fescar.samples.tcc.ApplicationKeeper; -import com.alibaba.fescar.samples.tcc.action.ResultHolder; -import com.alibaba.fescar.samples.tcc.action.impl.TccActionOneImpl; -import com.alibaba.fescar.samples.tcc.action.impl.TccActionTwoImpl; -import com.alibaba.fescar.samples.tcc.service.TccTransactionService; +package io.seata.samples.tcc.starter; + +import io.seata.common.util.StringUtils; +import io.seata.samples.tcc.ApplicationKeeper; +import io.seata.samples.tcc.action.ResultHolder; +import io.seata.samples.tcc.action.impl.TccActionOneImpl; +import io.seata.samples.tcc.action.impl.TccActionTwoImpl; +import io.seata.samples.tcc.service.TccTransactionService; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.util.Assert; @@ -47,7 +47,7 @@ public class LocalTccTransactionStarter { * @throws InterruptedException the interrupted exception */ public static void main(String[] args) throws InterruptedException { - applicationContext = new ClassPathXmlApplicationContext(new String[] {"spring/fescar-tcc.xml"}); + applicationContext = new ClassPathXmlApplicationContext(new String[] {"spring/seata-tcc.xml"}); tccTransactionService = (TccTransactionService) applicationContext.getBean("tccTransactionService" ); diff --git a/tcc/local-tcc-sample/src/main/resources/file.conf b/tcc/local-tcc-sample/src/main/resources/file.conf index d1577ff9e..46273dc51 100644 --- a/tcc/local-tcc-sample/src/main/resources/file.conf +++ b/tcc/local-tcc-sample/src/main/resources/file.conf @@ -37,3 +37,14 @@ client { retry.times = 30 } } + +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/tcc/local" + } +} diff --git a/tcc/local-tcc-sample/src/main/resources/spring/fescar-tcc.xml b/tcc/local-tcc-sample/src/main/resources/spring/seata-tcc.xml similarity index 76% rename from tcc/local-tcc-sample/src/main/resources/spring/fescar-tcc.xml rename to tcc/local-tcc-sample/src/main/resources/spring/seata-tcc.xml index af83d3c77..703a39a51 100644 --- a/tcc/local-tcc-sample/src/main/resources/spring/fescar-tcc.xml +++ b/tcc/local-tcc-sample/src/main/resources/spring/seata-tcc.xml @@ -22,16 +22,16 @@ http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd" default-autowire="byName"> - + - + - + - + \ No newline at end of file diff --git a/tcc/local-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServer.java b/tcc/local-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServer.java deleted file mode 100644 index 4d35e2f83..000000000 --- a/tcc/local-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServer.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.alibaba.fescar.samples.tcc; - -import com.alibaba.fescar.server.Server; - -import java.io.File; -import java.io.IOException; - -/** - * Mock a fescar server - * - * @author zhangsen - */ -public class FescarServer { - - /** - * The Server. - */ - Server server = null; - - /** - * Init. - * - * @throws IOException the io exception - */ - public void init() throws IOException { - server = new Server(); - String dataPath = new StringBuilder() - .append(System.getProperty("user.home")).append(File.separator) - .append("fescar").append(File.separator) - .append("localtcc").append(File.separator) - .append("data").toString(); - server.main(new String[]{"8091", dataPath, "127.0.0.1"}); - } -} diff --git a/tcc/local-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java b/tcc/local-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java deleted file mode 100644 index b0e733ca0..000000000 --- a/tcc/local-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.alibaba.fescar.samples.tcc; - - -import java.io.IOException; - -/** - * Mock a fescar server - * - * @author zhangsen - */ -public class FescarServerStarter { - - /** - * The entry point of application. - * - * @param args the input arguments - * @throws IOException the io exception - */ - public static void main(String[] args) throws IOException { - new FescarServer().init(); - } - - - -} diff --git a/tcc/local-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java b/tcc/local-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java new file mode 100644 index 000000000..831a787f7 --- /dev/null +++ b/tcc/local-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java @@ -0,0 +1,36 @@ +package io.seata.samples.tcc; + + +import io.seata.core.store.StoreMode; +import io.seata.server.Server; + +import java.io.File; +import java.io.IOException; + +/** + * Mock a seata server + * + * @author zhangsen + */ +public class SeataServerStarter { + + /** + * The Server. + */ + static Server server = null; + + /** + * The entry point of application. + * + * @param args the input arguments + * @throws IOException the io exception + */ + public static void main(String[] args) throws IOException { + server = new Server(); + server.main(new String[]{"8091", StoreMode.FILE.name(), "127.0.0.1"}); + + } + + + +} diff --git a/tcc/pom.xml b/tcc/pom.xml index 2137d4c16..45ae856c6 100644 --- a/tcc/pom.xml +++ b/tcc/pom.xml @@ -18,79 +18,74 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - com.alibaba.fescar - fescar-samples + io.seata + seata-samples 1.0.0-SNAPSHOT 4.0.0 - fescar-samples-tcc + seata-samples-tcc 1.0.0-SNAPSHOT pom - fescar-samples-tcc ${project.version} + seata-samples-tcc ${project.version} dubbo-tcc-sample local-tcc-sample sofarpc-tcc-sample transfer-tcc-sample + springboot-tcc-sample - 0.4.0 5.0.8.RELEASE - com.alibaba.fescar - fescar-dubbo-alibaba - ${fescar.version} + io.seata + seata-dubbo-alibaba + ${seata.version} - com.alibaba.fescar - fescar-common - ${fescar.version} - - - com.alibaba.fescar - fescar-config - ${fescar.version} + io.seata + seata-common + ${seata.version} - com.alibaba.fescar - fescar-core - ${fescar.version} + io.seata + seata-core + ${seata.version} - com.alibaba.fescar - fescar-rm-datasource - ${fescar.version} + io.seata + seata-rm-datasource + ${seata.version} - com.alibaba.fescar - fescar-tm - ${fescar.version} + io.seata + seata-tm + ${seata.version} - com.alibaba.fescar - fescar-spring - ${fescar.version} + io.seata + seata-spring + ${seata.version} - com.alibaba.fescar - fescar-dubbo - ${fescar.version} + io.seata + seata-dubbo + ${seata.version} - com.alibaba.fescar - fescar-server - ${fescar.version} + io.seata + seata-server + ${seata.version} diff --git a/tcc/sofarpc-tcc-sample/README.MD b/tcc/sofarpc-tcc-sample/README.MD index 8170b70a3..8fb666126 100644 --- a/tcc/sofarpc-tcc-sample/README.MD +++ b/tcc/sofarpc-tcc-sample/README.MD @@ -1,14 +1,14 @@ -# Fescar TCC 模式 demo 工程 +# Seata TCC 模式 demo 工程 -[Fescar](https://github.com/alibaba/fescar) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 +[Seata](https://github.com/seata/seata) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 ## demo 说明 -基于 Fescar TCC模式,演示分布式事务的提交和回滚; +基于 Seata TCC模式,演示分布式事务的提交和回滚; -本demo中一个分布式事务内会有2个TCC事务参与者,分别是: [TccActionOne](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/TccActionOne.java) 和 [TccActionTwo](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/TccActionTwo.java) ;分布式事务提交则两者均提交,分布式事务回滚则两者均回滚; +本demo中一个分布式事务内会有2个TCC事务参与者,分别是: [TccActionOne](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/TccActionOne.java) 和 [TccActionTwo](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/TccActionTwo.java) ;分布式事务提交则两者均提交,分布式事务回滚则两者均回滚; 这2个TCC参与者均是 SofaRpc 远程服务,一个应用实现TCC参与者,并将其发布成 ; @@ -47,19 +47,19 @@ public interface TccActionTwo { ## demo 运行指南 -#### step 1 启动 Fesacr Server +#### step 1 启动 Seata Server -运行 [FescarServerStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/server/FescarServerStarter.java) ,启动 Fescar Server; +运行 [SeataServerStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/test/java/io/seata/samples/tcc/server/SeataServerStarter.java) ,启动 Seata Server; #### step 2 启动 sofarpc 服务 -运行 [SofaRpcTccProviderApplication](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/provider/SofaRpcTccProviderApplication.java) +运行 [SofaRpcTccProviderApplication](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/test/java/io/seata/samples/tcc/provider/SofaRpcTccProviderApplication.java) 本应用发布TCC sofa-rpc 服务; #### step 2 启动 TCC Demo -运行 [SofaRPCTccTransactionApplication](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/starter/SofaRPCTccTransactionApplication.java) , 启动 demo工程; +运行 [SofaRPCTccTransactionApplication](https://github.com/fescar-group/fescar-samples/blob/master/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/starter/SofaRPCTccTransactionApplication.java) , 启动 demo工程; 本应用订阅TCC sofa-rpc 服务,发起方分布式事务,调用TCC sofa-rpc 参与者;内含TCC 事务提交场景和TCC事务回滚场景的演示; \ No newline at end of file diff --git a/tcc/sofarpc-tcc-sample/pom.xml b/tcc/sofarpc-tcc-sample/pom.xml index 95fcf9c3a..7554852bb 100644 --- a/tcc/sofarpc-tcc-sample/pom.xml +++ b/tcc/sofarpc-tcc-sample/pom.xml @@ -25,12 +25,13 @@ 4.0.0 sofarpc-tcc-sample + 1.0.0-SNAPSHOT jar sofarpc-tcc-sample ${project.version} + 0.5.0 2.9.1 - 0.4.0 4.1.24.Final @@ -49,46 +50,46 @@ - com.alibaba.fescar - fescar-common - ${fescar.version} + io.seata + seata-common + ${seata.version} + - com.alibaba.fescar - fescar-config - ${fescar.version} + io.seata + seata-core + ${seata.version} - - com.alibaba.fescar - fescar-core - ${fescar.version} + io.seata + seata-rm + ${seata.version} - com.alibaba.fescar - fescar-rm-datasource - ${fescar.version} + io.seata + seata-rm-datasource + ${seata.version} - com.alibaba.fescar - fescar-tm - ${fescar.version} + io.seata + seata-tm + ${seata.version} - com.alibaba.fescar - fescar-spring - ${fescar.version} + io.seata + seata-spring + ${seata.version} - com.alibaba.fescar - fescar-dubbo - ${fescar.version} + io.seata + seata-dubbo + ${seata.version} - com.alibaba.fescar - fescar-server - ${fescar.version} + io.seata + seata-server + ${seata.version} @@ -119,4 +120,31 @@ + + + mvnrepository + mvnrepository + http://www.mvnrepository.com/ + default + + true + + + true + + + + sonatype + sonatype + http://oss.sonatype.org/ + default + + true + + + true + + + + \ No newline at end of file diff --git a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/ApplicationKeeper.java b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/ApplicationKeeper.java similarity index 98% rename from tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/ApplicationKeeper.java rename to tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/ApplicationKeeper.java index 6573f90e6..12978d99d 100644 --- a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/ApplicationKeeper.java +++ b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/ApplicationKeeper.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.alibaba.fescar.samples.tcc.sofarpc; +package io.seata.samples.tcc.sofarpc; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/ResultHolder.java b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/ResultHolder.java similarity index 96% rename from tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/ResultHolder.java rename to tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/ResultHolder.java index f76c5b84e..88a757a72 100644 --- a/tcc/local-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/action/ResultHolder.java +++ b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/ResultHolder.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.tcc.action; +package io.seata.samples.tcc.sofarpc.action; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/TccActionOne.java b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/TccActionOne.java similarity index 78% rename from tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/TccActionOne.java rename to tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/TccActionOne.java index 468031e8a..56b8464be 100644 --- a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/TccActionOne.java +++ b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/TccActionOne.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.sofarpc.action; +package io.seata.samples.tcc.sofarpc.action; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.rm.tcc.api.LocalTCC; -import com.alibaba.fescar.rm.tcc.api.TwoPhaseBusinessAction; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.LocalTCC; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; /** * The interface Tcc action one. diff --git a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/TccActionTwo.java b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/TccActionTwo.java similarity index 78% rename from tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/TccActionTwo.java rename to tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/TccActionTwo.java index 5d56637ac..ec74c65fb 100644 --- a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/TccActionTwo.java +++ b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/TccActionTwo.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.sofarpc.action; +package io.seata.samples.tcc.sofarpc.action; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.rm.tcc.api.LocalTCC; -import com.alibaba.fescar.rm.tcc.api.TwoPhaseBusinessAction; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.LocalTCC; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; /** * The interface Tcc action two. diff --git a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/impl/TccActionOneImpl.java b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/impl/TccActionOneImpl.java similarity index 78% rename from tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/impl/TccActionOneImpl.java rename to tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/impl/TccActionOneImpl.java index 7f6a4542a..98566f431 100644 --- a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/impl/TccActionOneImpl.java +++ b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/impl/TccActionOneImpl.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.tcc.sofarpc.action.impl; +package io.seata.samples.tcc.sofarpc.action.impl; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.samples.tcc.action.ResultHolder; -import com.alibaba.fescar.samples.tcc.sofarpc.action.TccActionOne; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.sofarpc.action.ResultHolder; +import io.seata.samples.tcc.sofarpc.action.TccActionOne; /** * The type Tcc action one. diff --git a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/impl/TccActionTwoImpl.java b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/impl/TccActionTwoImpl.java similarity index 78% rename from tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/impl/TccActionTwoImpl.java rename to tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/impl/TccActionTwoImpl.java index fcdefd23c..3c019c7a8 100644 --- a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/action/impl/TccActionTwoImpl.java +++ b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/action/impl/TccActionTwoImpl.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.sofarpc.action.impl; +package io.seata.samples.tcc.sofarpc.action.impl; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.samples.tcc.action.ResultHolder; -import com.alibaba.fescar.samples.tcc.sofarpc.action.TccActionTwo; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.sofarpc.action.ResultHolder; +import io.seata.samples.tcc.sofarpc.action.TccActionTwo; /** * The type Tcc action two. diff --git a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/service/TccTransactionService.java b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/service/TccTransactionService.java similarity index 85% rename from tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/service/TccTransactionService.java rename to tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/service/TccTransactionService.java index 25a18f960..dcec0123c 100644 --- a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/service/TccTransactionService.java +++ b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/service/TccTransactionService.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.tcc.sofarpc.service; +package io.seata.samples.tcc.sofarpc.service; -import com.alibaba.fescar.core.context.RootContext; -import com.alibaba.fescar.samples.tcc.sofarpc.action.TccActionOne; -import com.alibaba.fescar.samples.tcc.sofarpc.action.TccActionTwo; -import com.alibaba.fescar.spring.annotation.GlobalTransactional; +import io.seata.core.context.RootContext; +import io.seata.samples.tcc.sofarpc.action.TccActionOne; +import io.seata.samples.tcc.sofarpc.action.TccActionTwo; +import io.seata.spring.annotation.GlobalTransactional; import java.util.Map; diff --git a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/starter/SofaRPCTccTransactionApplication.java b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/starter/SofaRPCTccTransactionApplication.java similarity index 89% rename from tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/starter/SofaRPCTccTransactionApplication.java rename to tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/starter/SofaRPCTccTransactionApplication.java index 338fc229c..0cee07858 100644 --- a/tcc/sofarpc-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/sofarpc/starter/SofaRPCTccTransactionApplication.java +++ b/tcc/sofarpc-tcc-sample/src/main/java/io/seata/samples/tcc/sofarpc/starter/SofaRPCTccTransactionApplication.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.sofarpc.starter; +package io.seata.samples.tcc.sofarpc.starter; -import com.alibaba.fescar.common.util.StringUtils; -import com.alibaba.fescar.samples.tcc.sofarpc.ApplicationKeeper; -import com.alibaba.fescar.samples.tcc.sofarpc.service.TccTransactionService; +import io.seata.common.util.StringUtils; +import io.seata.samples.tcc.sofarpc.ApplicationKeeper; +import io.seata.samples.tcc.sofarpc.service.TccTransactionService; import org.apache.curator.test.TestingServer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/tcc/sofarpc-tcc-sample/src/main/resources/file.conf b/tcc/sofarpc-tcc-sample/src/main/resources/file.conf index d1577ff9e..80d4cd56a 100644 --- a/tcc/sofarpc-tcc-sample/src/main/resources/file.conf +++ b/tcc/sofarpc-tcc-sample/src/main/resources/file.conf @@ -37,3 +37,15 @@ client { retry.times = 30 } } + +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/tcc/sofarpc" + } +} + diff --git a/tcc/sofarpc-tcc-sample/src/main/resources/provider/fescar-sofarpc-provider.xml b/tcc/sofarpc-tcc-sample/src/main/resources/provider/seata-sofarpc-provider.xml similarity index 84% rename from tcc/sofarpc-tcc-sample/src/main/resources/provider/fescar-sofarpc-provider.xml rename to tcc/sofarpc-tcc-sample/src/main/resources/provider/seata-sofarpc-provider.xml index 8a93aa663..a505de6d0 100644 --- a/tcc/sofarpc-tcc-sample/src/main/resources/provider/fescar-sofarpc-provider.xml +++ b/tcc/sofarpc-tcc-sample/src/main/resources/provider/seata-sofarpc-provider.xml @@ -22,12 +22,12 @@ default-autowire="byName"> - + - + diff --git a/tcc/sofarpc-tcc-sample/src/main/resources/provider/fescar-tcc.xml b/tcc/sofarpc-tcc-sample/src/main/resources/provider/seata-tcc.xml similarity index 74% rename from tcc/sofarpc-tcc-sample/src/main/resources/provider/fescar-tcc.xml rename to tcc/sofarpc-tcc-sample/src/main/resources/provider/seata-tcc.xml index 6efe65fcc..2f3d3301b 100644 --- a/tcc/sofarpc-tcc-sample/src/main/resources/provider/fescar-tcc.xml +++ b/tcc/sofarpc-tcc-sample/src/main/resources/provider/seata-tcc.xml @@ -22,16 +22,16 @@ http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd" default-autowire="byName"> - + - + - + - + \ No newline at end of file diff --git a/tcc/sofarpc-tcc-sample/src/main/resources/spring/fescar-sofarpc-reference.xml b/tcc/sofarpc-tcc-sample/src/main/resources/spring/seata-sofarpc-reference.xml similarity index 84% rename from tcc/sofarpc-tcc-sample/src/main/resources/spring/fescar-sofarpc-reference.xml rename to tcc/sofarpc-tcc-sample/src/main/resources/spring/seata-sofarpc-reference.xml index c44aeb1be..9846831ba 100644 --- a/tcc/sofarpc-tcc-sample/src/main/resources/spring/fescar-sofarpc-reference.xml +++ b/tcc/sofarpc-tcc-sample/src/main/resources/spring/seata-sofarpc-reference.xml @@ -22,12 +22,12 @@ default-autowire="byName"> - + - + diff --git a/tcc/sofarpc-tcc-sample/src/main/resources/spring/fescar-tcc.xml b/tcc/sofarpc-tcc-sample/src/main/resources/spring/seata-tcc.xml similarity index 74% rename from tcc/sofarpc-tcc-sample/src/main/resources/spring/fescar-tcc.xml rename to tcc/sofarpc-tcc-sample/src/main/resources/spring/seata-tcc.xml index 6efe65fcc..2f3d3301b 100644 --- a/tcc/sofarpc-tcc-sample/src/main/resources/spring/fescar-tcc.xml +++ b/tcc/sofarpc-tcc-sample/src/main/resources/spring/seata-tcc.xml @@ -22,16 +22,16 @@ http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd" default-autowire="byName"> - + - + - + - + \ No newline at end of file diff --git a/tcc/sofarpc-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/provider/SofaRpcTccProviderApplication.java b/tcc/sofarpc-tcc-sample/src/test/java/io/seata/samples/tcc/provider/SofaRpcTccProviderApplication.java similarity index 95% rename from tcc/sofarpc-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/provider/SofaRpcTccProviderApplication.java rename to tcc/sofarpc-tcc-sample/src/test/java/io/seata/samples/tcc/provider/SofaRpcTccProviderApplication.java index 6b60d988c..db8de4858 100644 --- a/tcc/sofarpc-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/provider/SofaRpcTccProviderApplication.java +++ b/tcc/sofarpc-tcc-sample/src/test/java/io/seata/samples/tcc/provider/SofaRpcTccProviderApplication.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.tcc.provider; +package io.seata.samples.tcc.provider; import org.apache.curator.test.TestingServer; import org.springframework.boot.SpringApplication; diff --git a/tcc/sofarpc-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/server/FescarServerStarter.java b/tcc/sofarpc-tcc-sample/src/test/java/io/seata/samples/tcc/server/SeataServerStarter.java similarity index 57% rename from tcc/sofarpc-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/server/FescarServerStarter.java rename to tcc/sofarpc-tcc-sample/src/test/java/io/seata/samples/tcc/server/SeataServerStarter.java index a9bc18574..335662c91 100644 --- a/tcc/sofarpc-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/server/FescarServerStarter.java +++ b/tcc/sofarpc-tcc-sample/src/test/java/io/seata/samples/tcc/server/SeataServerStarter.java @@ -1,17 +1,18 @@ -package com.alibaba.fescar.samples.tcc.server; +package io.seata.samples.tcc.server; -import com.alibaba.fescar.server.Server; +import io.seata.core.store.StoreMode; +import io.seata.server.Server; import java.io.File; import java.io.IOException; /** - * Mock a fescar server + * Mock a seata server * * @author zhangsen */ -public class FescarServerStarter { +public class SeataServerStarter { /** * The entry point of application. @@ -40,12 +41,7 @@ public static class FescarServer { */ public void init() throws IOException { server = new Server(); - String dataPath = new StringBuilder() - .append(System.getProperty("user.home")).append(File.separator) - .append("fescar").append(File.separator) - .append("sofarpc").append(File.separator) - .append("data").toString(); - server.main(new String[]{"8091", dataPath, "127.0.0.1"}); + server.main(new String[]{"8091", StoreMode.FILE.name(), "127.0.0.1"}); } } } diff --git a/tcc/springboot-tcc-sample/README.MD b/tcc/springboot-tcc-sample/README.MD new file mode 100644 index 000000000..7a94f5a37 --- /dev/null +++ b/tcc/springboot-tcc-sample/README.MD @@ -0,0 +1,65 @@ +# Seata TCC 模式 demo 工程 + + +[Seata](https://github.com/seata/seata) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 + + +## demo 说明 + +基于 Seata TCC模式,演示分布式事务的提交和回滚; + +本demo中一个分布式事务内会有2个TCC事务参与者,分别是: [TccActionOne](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionOne.java) 和 [TccActionTwo](https://github.com/fescar-group/fescar-samples/blob/master/tcc/dubbo-tcc-sample/src/main/java/io/seata/samples/tcc/dubbo/action/TccActionTwo.java) ;分布式事务提交则两者均提交,分布式事务回滚则两者均回滚; + +这2个TCC参与者均是 dubbo远程服务,一个应用实现TCC参与者,并将其发布成 ; + +另外一个事务发起方应用,订阅TCC dubbo服务,调用 编排TCC参与者,执行远程TCC服务;其接口定义如下: + +- TccActionOne 接口定义如下: + +```java +public interface TccActionOne { + + @TwoPhaseBusinessAction(name = "DubboTccActionOne" , commitMethod = "commit", rollbackMethod = "rollback") + public boolean prepare(BusinessActionContext actionContext, int a); + + public boolean commit(BusinessActionContext actionContext); + + public boolean rollback(BusinessActionContext actionContext); +} +``` + + +- TccActionTwo 接口定义如下: + +```java +public interface TccActionTwo { + + @TwoPhaseBusinessAction(name = "DubboTccActionTwo" , commitMethod = "commit", rollbackMethod = "rollback") + public boolean prepare(BusinessActionContext actionContext, String b); + + public boolean commit(BusinessActionContext actionContext); + + public boolean rollback(BusinessActionContext actionContext); + +} +``` + + +## demo 运行指南 + +#### step 1 启动 Seata Server + +运行 [SeataServerStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/springboot-tcc-sample/src/test/java/io/seata/samples/tcc/server/SeataServerStarter.java) ,启动 Seata Server; + + +#### step 2 启动 dubbo 服务 + +运行 [SpringbootTccProviderApplication](https://github.com/fescar-group/fescar-samples/blob/master/tcc/springboot-tcc-sample/src/test/java/io/seata/samples/tcc/provider/SpringbootTccProviderApplication.java) + +本应用发布TCC dubbo服务; + +#### step 2 启动 TCC Demo() + +运行 [SpringbootTccTransactionApplication](https://github.com/fescar-group/fescar-samples/blob/master/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/starter/SpringbootTccTransactionApplication.java) , 启动 demo工程; + +本应用订阅TCC dubbo服务,发起方分布式事务,调用TCC dubbo参与者;内含TCC 事务提交场景和TCC事务回滚场景的演示; \ No newline at end of file diff --git a/tcc/springboot-tcc-sample/pom.xml b/tcc/springboot-tcc-sample/pom.xml new file mode 100644 index 000000000..1046c8a26 --- /dev/null +++ b/tcc/springboot-tcc-sample/pom.xml @@ -0,0 +1,203 @@ + + + + + org.springframework.boot + spring-boot-starter-parent + 1.5.16.RELEASE + + + 4.0.0 + springboot-tcc-sample + 1.0.0-SNAPSHOT + jar + dubbo-tcc-sample ${project.version} + + + 0.5.0 + + 3.4.6 + 2.9.1 + 1.0.0 + 2.7.0 + 4.1.24.Final + 4.1.0 + 5.0.8.RELEASE + + + + + + + org.springframework.boot + spring-boot-starter + 2.0.8.RELEASE + + + org.springframework.boot + spring-boot-dependencies + 2.0.8.RELEASE + pom + import + + + + org.apache.dubbo + dubbo + ${dubbo.version} + + + org.springframework + spring + + + + + + + org.apache.curator + curator-recipes + 4.1.0 + + + + + org.apache.curator + curator-test + 2.9.1 + + + + org.apache.zookeeper + zookeeper + ${zookeeper.version} + + + org.slf4j + slf4j-log4j12 + + + log4j + log4j + + + + + + + io.seata + seata-common + ${seata.version} + + + io.seata + seata-core + ${seata.version} + + + io.seata + seata-rm-datasource + ${seata.version} + + + io.seata + seata-tm + ${seata.version} + + + io.seata + seata-rm + ${seata.version} + + + io.seata + seata-spring + ${seata.version} + + + io.seata + seata-dubbo + ${seata.version} + + + + io.seata + seata-server + ${seata.version} + + + + + org.springframework + spring-context + + + org.springframework + spring-core + + + org.springframework + spring-beans + + + org.springframework + spring-aop + + + org.springframework + spring-tx + + + org.springframework + spring-orm + + + org.springframework + spring-jdbc + + + + + + mvnrepository + mvnrepository + http://www.mvnrepository.com/ + default + + true + + + true + + + + sonatype + sonatype + http://oss.sonatype.org/ + default + + true + + + true + + + + + \ No newline at end of file diff --git a/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/ApplicationKeeper.java b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/ApplicationKeeper.java new file mode 100644 index 000000000..9927b2a41 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/ApplicationKeeper.java @@ -0,0 +1,79 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.seata.samples.tcc.springboot.dubbo; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; + +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; + +/** + * The type Application keeper. + */ +public class ApplicationKeeper { + + private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationKeeper.class); + + private final ReentrantLock LOCK = new ReentrantLock(); + private final Condition STOP = LOCK.newCondition(); + + /** + * Instantiates a new Application keeper. + * + * @param applicationContext the application context + */ + public ApplicationKeeper(AbstractApplicationContext applicationContext) { + addShutdownHook(applicationContext); + } + + private void addShutdownHook(final AbstractApplicationContext applicationContext) { + Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { + @Override + public void run() { + try { + applicationContext.close(); + LOGGER.info("ApplicationContext " + applicationContext + " is closed."); + } catch (Exception e) { + LOGGER.error("Failed to close ApplicationContext", e); + } + + try { + LOCK.lock(); + STOP.signal(); + } finally { + LOCK.unlock(); + } + } + })); + } + + /** + * Keep. + */ + public void keep() { + synchronized (LOCK) { + try { + LOGGER.info("Application is keep running ... "); + LOCK.wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } +} diff --git a/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/ResultHolder.java b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/ResultHolder.java new file mode 100644 index 000000000..614286040 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/ResultHolder.java @@ -0,0 +1,57 @@ +package io.seata.samples.tcc.springboot.dubbo.action; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * The type Result holder. + * + * @author zhangsen + */ +public class ResultHolder { + + private static Map actionOneResults = new ConcurrentHashMap(); + + private static Map actionTwoResults = new ConcurrentHashMap(); + + /** + * Set action one result. + * + * @param txId the tx id + * @param result the result + */ + public static void setActionOneResult(String txId, String result){ + actionOneResults.put(txId, result); + } + + /** + * Get action one result string. + * + * @param txId the tx id + * @return the string + */ + public static String getActionOneResult(String txId){ + return actionOneResults.get(txId); + } + + /** + * Set action two result. + * + * @param txId the tx id + * @param result the result + */ + public static void setActionTwoResult(String txId, String result){ + actionTwoResults.put(txId, result); + } + + /** + * Get action two result string. + * + * @param txId the tx id + * @return the string + */ + public static String getActionTwoResult(String txId){ + return actionTwoResults.get(txId); + } + +} diff --git a/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/TccActionOne.java b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/TccActionOne.java new file mode 100644 index 000000000..589a0c181 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/TccActionOne.java @@ -0,0 +1,40 @@ +package io.seata.samples.tcc.springboot.dubbo.action; + +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.BusinessActionContextParameter; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; + +/** + * The interface Tcc action one. + * + * @author zhangsen + */ +public interface TccActionOne { + + /** + * Prepare boolean. + * + * @param actionContext the action context + * @param a the a + * @return the boolean + */ + @TwoPhaseBusinessAction(name = "DubboTccActionOne" , commitMethod = "commit", rollbackMethod = "rollback") + public boolean prepare(BusinessActionContext actionContext, + @BusinessActionContextParameter(paramName = "a") int a); + + /** + * Commit boolean. + * + * @param actionContext the action context + * @return the boolean + */ + public boolean commit(BusinessActionContext actionContext); + + /** + * Rollback boolean. + * + * @param actionContext the action context + * @return the boolean + */ + public boolean rollback(BusinessActionContext actionContext); +} diff --git a/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/TccActionTwo.java b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/TccActionTwo.java new file mode 100644 index 000000000..143878b04 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/TccActionTwo.java @@ -0,0 +1,44 @@ +package io.seata.samples.tcc.springboot.dubbo.action; + +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.BusinessActionContextParameter; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; + +import java.util.List; + +/** + * The interface Tcc action two. + * + * @author zhangsen + */ +public interface TccActionTwo { + + /** + * Prepare boolean. + * + * @param actionContext the action context + * @param b the b + * @param list the list + * @return the boolean + */ + @TwoPhaseBusinessAction(name = "DubboTccActionTwo" , commitMethod = "commit", rollbackMethod = "rollback") + public boolean prepare(BusinessActionContext actionContext, @BusinessActionContextParameter(paramName = "b") String b, + @BusinessActionContextParameter(paramName = "c",index = 1) List list); + + /** + * Commit boolean. + * + * @param actionContext the action context + * @return the boolean + */ + public boolean commit(BusinessActionContext actionContext); + + /** + * Rollback boolean. + * + * @param actionContext the action context + * @return the boolean + */ + public boolean rollback(BusinessActionContext actionContext); + +} diff --git a/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/impl/TccActionOneImpl.java b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/impl/TccActionOneImpl.java new file mode 100644 index 000000000..b385a400b --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/impl/TccActionOneImpl.java @@ -0,0 +1,36 @@ +package io.seata.samples.tcc.springboot.dubbo.action.impl; + +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.springboot.dubbo.action.ResultHolder; +import io.seata.samples.tcc.springboot.dubbo.action.TccActionOne; + +/** + * The type Tcc action one. + * + * @author zhangsen + */ +public class TccActionOneImpl implements TccActionOne { + + @Override + public boolean prepare(BusinessActionContext actionContext, int a) { + String xid = actionContext.getXid(); + System.out.println("TccActionOne prepare, xid:" + xid + ", a:" + a); + return true; + } + + @Override + public boolean commit(BusinessActionContext actionContext) { + String xid = actionContext.getXid(); + System.out.println("TccActionOne commit, xid:" + xid + ", a:" + actionContext.getActionContext("a")); + ResultHolder.setActionOneResult(xid, "T"); + return true; + } + + @Override + public boolean rollback(BusinessActionContext actionContext) { + String xid = actionContext.getXid(); + System.out.println("TccActionOne rollback, xid:" + xid + ", a:" + actionContext.getActionContext("a")); + ResultHolder.setActionOneResult(xid, "R"); + return true; + } +} diff --git a/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/impl/TccActionTwoImpl.java b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/impl/TccActionTwoImpl.java new file mode 100644 index 000000000..37ab9e2eb --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/action/impl/TccActionTwoImpl.java @@ -0,0 +1,39 @@ +package io.seata.samples.tcc.springboot.dubbo.action.impl; + +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.springboot.dubbo.action.ResultHolder; +import io.seata.samples.tcc.springboot.dubbo.action.TccActionTwo; + +import java.util.List; + +/** + * The type Tcc action two. + * + * @author zhangsen + */ +public class TccActionTwoImpl implements TccActionTwo { + + @Override + public boolean prepare(BusinessActionContext actionContext, String b, List list) { + String xid = actionContext.getXid(); + System.out.println("TccActionTwo prepare, xid:" + xid + ", b:" + b + ", c:" + list.get(1)); + return true; + } + + @Override + public boolean commit(BusinessActionContext actionContext) { + String xid = actionContext.getXid(); + System.out.println("TccActionTwo commit, xid:" + xid + ", b:" + actionContext.getActionContext("b") + ", c:" + actionContext.getActionContext("c")); + ResultHolder.setActionTwoResult(xid, "T"); + return true; + } + + @Override + public boolean rollback(BusinessActionContext actionContext) { + String xid = actionContext.getXid(); + System.out.println("TccActionTwo rollback, xid:" + xid + ", b:" + actionContext.getActionContext("b") + ", c:" + actionContext.getActionContext("c")); + ResultHolder.setActionTwoResult(xid, "R"); + return true; + } + +} diff --git a/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/service/TccTransactionService.java b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/service/TccTransactionService.java new file mode 100644 index 000000000..3f3b53eb5 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/service/TccTransactionService.java @@ -0,0 +1,86 @@ +package io.seata.samples.tcc.springboot.dubbo.service; + +import io.seata.core.context.RootContext; +import io.seata.samples.tcc.springboot.dubbo.action.TccActionOne; +import io.seata.samples.tcc.springboot.dubbo.action.TccActionTwo; +import io.seata.spring.annotation.GlobalTransactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * The type Tcc transaction service. + * + * @author zhangsen + */ +public class TccTransactionService { + + private TccActionOne tccActionOne; + + private TccActionTwo tccActionTwo; + + /** + * 发起分布式事务 + * + * @return string string + */ + @GlobalTransactional + public String doTransactionCommit(){ + //第一个TCC 事务参与者 + boolean result = tccActionOne.prepare(null, 1); + if(!result){ + throw new RuntimeException("TccActionOne failed."); + } + List list = new ArrayList(); + list.add("c1"); + list.add("c2"); + result = tccActionTwo.prepare(null, "two", list); + if(!result){ + throw new RuntimeException("TccActionTwo failed."); + } + return RootContext.getXID(); + } + + /** + * Do transaction rollback string. + * + * @param map the map + * @return the string + */ + @GlobalTransactional + public String doTransactionRollback(Map map){ + //第一个TCC 事务参与者 + boolean result = tccActionOne.prepare(null, 1); + if(!result){ + throw new RuntimeException("TccActionOne failed."); + } + List list = new ArrayList(); + list.add("c1"); + list.add("c2"); + result = tccActionTwo.prepare(null, "two", list); + if(!result){ + throw new RuntimeException("TccActionTwo failed."); + } + map.put("xid", RootContext.getXID()); + throw new RuntimeException("transacton rollback"); + } + + /** + * Sets tcc action one. + * + * @param tccActionOne the tcc action one + */ + public void setTccActionOne(TccActionOne tccActionOne) { + this.tccActionOne = tccActionOne; + } + + /** + * Sets tcc action two. + * + * @param tccActionTwo the tcc action two + */ + public void setTccActionTwo(TccActionTwo tccActionTwo) { + this.tccActionTwo = tccActionTwo; + } +} diff --git a/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/starter/SpringbootTccTransactionApplication.java b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/starter/SpringbootTccTransactionApplication.java new file mode 100644 index 000000000..98879fbde --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/java/io/seata/samples/tcc/springboot/dubbo/starter/SpringbootTccTransactionApplication.java @@ -0,0 +1,71 @@ +package io.seata.samples.tcc.springboot.dubbo.starter; + +import io.seata.common.util.StringUtils; +import io.seata.samples.tcc.springboot.dubbo.ApplicationKeeper; +import io.seata.samples.tcc.springboot.dubbo.service.TccTransactionService; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.ImportResource; +import org.springframework.util.Assert; + +import java.util.HashMap; +import java.util.Map; + +/** + * The type Sofa rpc tcc transaction application. + * + * @author zhangsen + */ +@SpringBootApplication +@ImportResource("classpath:spring/*.xml") +public class SpringbootTccTransactionApplication { + + /** + * The Tcc transaction service. + */ + static TccTransactionService tccTransactionService = null; + + /** + * The entry point of application. + * + * @param args the input arguments + * @throws Exception the exception + */ + public static void main(String[] args) throws Exception { + + ApplicationContext applicationContext = SpringApplication.run(SpringbootTccTransactionApplication.class, args); + + tccTransactionService = (TccTransactionService) applicationContext.getBean("tccTransactionService" ); + + //分布式事务提交demo + transactionCommitDemo(); + + //分布式事务回滚demo + transactionRollbackDemo(); + + new ApplicationKeeper(null).keep(); + } + + private static void transactionCommitDemo() throws InterruptedException { + String txId = tccTransactionService.doTransactionCommit(); + System.out.println(txId); + Assert.isTrue(StringUtils.isNotBlank(txId), "事务开启失败"); + + System.out.println("transaction commit demo finish."); + } + + private static void transactionRollbackDemo() throws InterruptedException { + Map map = new HashMap(16); + try{ + tccTransactionService.doTransactionRollback(map); + Assert.isTrue(false, "分布式事务未回滚"); + }catch (Throwable t) { + Assert.isTrue(true, "分布式事务异常回滚"); + } + String txId = (String) map.get("xid"); + + System.out.println("transaction rollback demo finish."); + } +} + diff --git a/tcc/springboot-tcc-sample/src/main/resources/application.properties b/tcc/springboot-tcc-sample/src/main/resources/application.properties new file mode 100644 index 000000000..23d21bf09 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.application.name: springboot-tcc-sample \ No newline at end of file diff --git a/springboot-dubbo-fescar/samples-account/src/main/resources/file.conf b/tcc/springboot-tcc-sample/src/main/resources/file.conf similarity index 72% rename from springboot-dubbo-fescar/samples-account/src/main/resources/file.conf rename to tcc/springboot-tcc-sample/src/main/resources/file.conf index 1a561be00..270699c4d 100644 --- a/springboot-dubbo-fescar/samples-account/src/main/resources/file.conf +++ b/tcc/springboot-tcc-sample/src/main/resources/file.conf @@ -20,16 +20,6 @@ transport { worker-thread-size = 8 } } -store { - # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions - max-branch-session-size = 16384 - # globe session size , if exceeded throws exceptions - max-global-session-size = 512 - # file buffer size , if exceeded allocate new buffer - file-write-buffer-cache-size = 16384 - # when recover batch read size - session.reload.read_size = 100 -} service { #vgroup->rgroup vgroup_mapping.my_test_tx_group = "default" @@ -40,7 +30,6 @@ service { #disable disable = false } - client { async.commit.buffer.limit = 10000 lock { @@ -48,3 +37,15 @@ client { retry.times = 30 } } + +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/tcc/springboot" + } +} + diff --git a/tcc/springboot-tcc-sample/src/main/resources/provider/seata-dubbo-provider.xml b/tcc/springboot-tcc-sample/src/main/resources/provider/seata-dubbo-provider.xml new file mode 100644 index 000000000..adf609876 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/resources/provider/seata-dubbo-provider.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tcc/springboot-tcc-sample/src/main/resources/provider/seata-tcc.xml b/tcc/springboot-tcc-sample/src/main/resources/provider/seata-tcc.xml new file mode 100644 index 000000000..847ba04e8 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/resources/provider/seata-tcc.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tcc/springboot-tcc-sample/src/main/resources/registry.conf b/tcc/springboot-tcc-sample/src/main/resources/registry.conf new file mode 100644 index 000000000..fa9a4da9c --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/resources/registry.conf @@ -0,0 +1,51 @@ +registry { + # file 、nacos 、eureka、redis、zk + type = "file" + + nacos { + serverAddr = "localhost" + namespace = "public" + cluster = "default" + } + eureka { + serviceUrl = "http://localhost:1001/eureka" + application = "default" + weight = "1" + } + redis { + serverAddr = "localhost:6379" + db = "0" + } + zk { + cluster = "default" + serverAddr = "127.0.0.1:2181" + session.timeout = 6000 + connect.timeout = 2000 + } + file { + name = "file.conf" + } +} + +config { + # file、nacos 、apollo、zk + type = "file" + + nacos { + serverAddr = "localhost" + namespace = "public" + cluster = "default" + } + apollo { + app.id = "fescar-server" + apollo.meta = "http://192.168.1.204:8801" + } + zk { + serverAddr = "127.0.0.1:2181" + session.timeout = 6000 + connect.timeout = 2000 + } + file { + name = "file.conf" + } +} diff --git a/tcc/springboot-tcc-sample/src/main/resources/spring/seata-dubbo-reference.xml b/tcc/springboot-tcc-sample/src/main/resources/spring/seata-dubbo-reference.xml new file mode 100644 index 000000000..92fb9f068 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/resources/spring/seata-dubbo-reference.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tcc/springboot-tcc-sample/src/main/resources/spring/seata-tcc.xml b/tcc/springboot-tcc-sample/src/main/resources/spring/seata-tcc.xml new file mode 100644 index 000000000..847ba04e8 --- /dev/null +++ b/tcc/springboot-tcc-sample/src/main/resources/spring/seata-tcc.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tcc/springboot-tcc-sample/src/test/java/io/seata/samples/tcc/provider/SpringbootTccProviderApplication.java b/tcc/springboot-tcc-sample/src/test/java/io/seata/samples/tcc/provider/SpringbootTccProviderApplication.java new file mode 100644 index 000000000..f8987e1af --- /dev/null +++ b/tcc/springboot-tcc-sample/src/test/java/io/seata/samples/tcc/provider/SpringbootTccProviderApplication.java @@ -0,0 +1,40 @@ +package io.seata.samples.tcc.provider; + +import org.apache.curator.test.TestingServer; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.ImportResource; + +/** + * The type Sofa rpc tcc provider application. + * + * @author zhangsen + */ +@SpringBootApplication +@ImportResource("classpath:provider/*.xml") +public class SpringbootTccProviderApplication { + + private static TestingServer server; + + /** + * The entry point of application. + * + * @param args the input arguments + * @throws Exception the exception + */ + public static void main(String[] args) throws Exception { + //mock zk server + mockZKServer(); + + ApplicationContext applicationContext = SpringApplication.run(SpringbootTccProviderApplication.class, args); + + } + + private static void mockZKServer() throws Exception { + //Mock zk server,作为 配置中心 + server = new TestingServer(2181, true); + server.start(); + } + +} diff --git a/tcc/springboot-tcc-sample/src/test/java/io/seata/samples/tcc/server/SeataServerStarter.java b/tcc/springboot-tcc-sample/src/test/java/io/seata/samples/tcc/server/SeataServerStarter.java new file mode 100644 index 000000000..d9da0139e --- /dev/null +++ b/tcc/springboot-tcc-sample/src/test/java/io/seata/samples/tcc/server/SeataServerStarter.java @@ -0,0 +1,32 @@ +package io.seata.samples.tcc.server; + + +import io.seata.core.store.StoreMode; +import io.seata.server.Server; + +import java.io.IOException; + +/** + * Mock a seata server + * + * @author zhangsen + */ +public class SeataServerStarter { + + /** + * The Server. + */ + static Server server = null; + + /** + * The entry point of application. + * + * @param args the input arguments + * @throws IOException the io exception + */ + public static void main(String[] args) throws IOException { + server = new Server(); + server.main(new String[]{"8091", StoreMode.FILE.name(), "127.0.0.1"}); + } + +} diff --git a/tcc/transfer-tcc-sample/README.MD b/tcc/transfer-tcc-sample/README.MD index 8c7e8cb33..cb7b2340b 100644 --- a/tcc/transfer-tcc-sample/README.MD +++ b/tcc/transfer-tcc-sample/README.MD @@ -1,14 +1,14 @@ -# Fescar TCC 模式 demo 工程 +# Seata TCC 模式 demo 工程 -[Fescar](https://github.com/alibaba/fescar) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 +[Seata](https://github.com/seata/seata) 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。 ## demo 说明 -基于 Fescar TCC模式,以转账场景为例,演示分布式事务的提交和回滚; +基于 Seata TCC模式,以转账场景为例,演示分布式事务的提交和回滚; -本demo中一个分布式事务内会有2个TCC事务参与者,分别是: [FirstTccAction](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample//src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/FirstTccAction.java) 和 [SecondTccAction](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/SecondTccAction.java) ; +本demo中一个分布式事务内会有2个TCC事务参与者,分别是: [FirstTccAction](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample//src/main/java/io/seata/samples/tcc/transfer/action/FirstTccAction.java) 和 [SecondTccAction](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/SecondTccAction.java) ; FirstTccAction 实现了转账服务中的扣款TCC服务,SecondTccAction 实现了转账服务中的存款TCC服务; @@ -56,17 +56,17 @@ public interface SecondTccAction { #### step 1 启动 Fesacr Server -运行 [FescarServerStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java) ,启动 Fescar Server; +运行 [SeataServerStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java) ,启动 Seata Server; #### step 2 启动 dubbo 服务 -运行 [TransferProviderStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/starter/TransferProviderStarter.java) +运行 [TransferProviderStarter](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/starter/TransferProviderStarter.java) 本应用发布TCC dubbo服务; #### step 2 启动 TCC 转账 Demo -运行 [TransferApplication](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/starter/TransferApplication.java) , 启动 demo工程; +运行 [TransferApplication](https://github.com/fescar-group/fescar-samples/blob/master/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/starter/TransferApplication.java) , 启动 demo工程; 本应用订阅TCC dubbo服务,发起方分布式事务,调用TCC dubbo参与者,完成转账;内含转账事务提交(doTransferSuccess)场景和转账事务回滚(doTransferFailed)场景的演示; \ No newline at end of file diff --git a/tcc/transfer-tcc-sample/pom.xml b/tcc/transfer-tcc-sample/pom.xml index 6392a4260..92b2d4797 100644 --- a/tcc/transfer-tcc-sample/pom.xml +++ b/tcc/transfer-tcc-sample/pom.xml @@ -18,8 +18,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - com.alibaba.fescar - fescar-samples-tcc + io.seata + seata-samples-tcc 1.0.0-SNAPSHOT @@ -29,7 +29,6 @@ transfer-tcc-sample ${project.version} - 0.4.0 4.3.9.RELEASE 3.4.6 diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/ApplicationKeeper.java b/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/ApplicationKeeper.java deleted file mode 100644 index 5af7e232f..000000000 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/ApplicationKeeper.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 1999-2018 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.fescar.samples.tcc.transfer; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.support.AbstractApplicationContext; - -import java.util.concurrent.locks.Condition; -import java.util.concurrent.locks.ReentrantLock; - -/** - * The type Application keeper. - */ -public class ApplicationKeeper { - - private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationKeeper.class); - - private final ReentrantLock LOCK = new ReentrantLock(); - private final Condition STOP = LOCK.newCondition(); - - /** - * Instantiates a new Application keeper. - * - * @param applicationContext the application context - */ - public ApplicationKeeper(AbstractApplicationContext applicationContext) { - addShutdownHook(applicationContext); - } - - private void addShutdownHook(final AbstractApplicationContext applicationContext) { - Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { - @Override - public void run() { - try { - applicationContext.close(); - LOGGER.info("ApplicationContext " + applicationContext + " is closed."); - } catch (Exception e) { - LOGGER.error("Failed to close ApplicationContext", e); - } - - try { - LOCK.lock(); - STOP.signal(); - } finally { - LOCK.unlock(); - } - } - })); - } - - /** - * Keep. - */ - public void keep() { - synchronized (LOCK) { - try { - LOGGER.info("Application is keep running ... "); - LOCK.wait(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } -} diff --git a/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/ApplicationKeeper.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/ApplicationKeeper.java new file mode 100644 index 000000000..e165058ac --- /dev/null +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/ApplicationKeeper.java @@ -0,0 +1,79 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.seata.samples.tcc.transfer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.support.AbstractApplicationContext; + +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; + +/** + * The type Application keeper. + */ +public class ApplicationKeeper { + + private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationKeeper.class); + + private final ReentrantLock LOCK = new ReentrantLock(); + private final Condition STOP = LOCK.newCondition(); + + /** + * Instantiates a new Application keeper. + * + * @param applicationContext the application context + */ + public ApplicationKeeper(AbstractApplicationContext applicationContext) { + addShutdownHook(applicationContext); + } + + private void addShutdownHook(final AbstractApplicationContext applicationContext) { + Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { + @Override + public void run() { + try { + applicationContext.close(); + LOGGER.info("ApplicationContext " + applicationContext + " is closed."); + } catch (Exception e) { + LOGGER.error("Failed to close ApplicationContext", e); + } + + try { + LOCK.lock(); + STOP.signal(); + } finally { + LOCK.unlock(); + } + } + })); + } + + /** + * Keep. + */ + public void keep() { + synchronized (LOCK) { + try { + LOGGER.info("Application is keep running ... "); + LOCK.wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } +} diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/FirstTccAction.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/FirstTccAction.java similarity index 79% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/FirstTccAction.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/FirstTccAction.java index a2e768d8e..0cad0bea5 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/FirstTccAction.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/FirstTccAction.java @@ -1,9 +1,9 @@ -package com.alibaba.fescar.samples.tcc.transfer.action; +package io.seata.samples.tcc.transfer.action; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContextParameter; -import com.alibaba.fescar.rm.tcc.api.TwoPhaseBusinessAction; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.BusinessActionContextParameter; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; /** * TCC参与者:扣钱 diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/SecondTccAction.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/SecondTccAction.java similarity index 79% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/SecondTccAction.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/SecondTccAction.java index 62fac041c..ad2b23e38 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/SecondTccAction.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/SecondTccAction.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.transfer.action; +package io.seata.samples.tcc.transfer.action; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContextParameter; -import com.alibaba.fescar.rm.tcc.api.TwoPhaseBusinessAction; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.rm.tcc.api.BusinessActionContextParameter; +import io.seata.rm.tcc.api.TwoPhaseBusinessAction; /** * TCC参与者:加钱 diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/impl/FirstTccActionImpl.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/impl/FirstTccActionImpl.java similarity index 94% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/impl/FirstTccActionImpl.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/impl/FirstTccActionImpl.java index a2b361d80..c56c63a33 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/impl/FirstTccActionImpl.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/impl/FirstTccActionImpl.java @@ -1,10 +1,10 @@ -package com.alibaba.fescar.samples.tcc.transfer.action.impl; +package io.seata.samples.tcc.transfer.action.impl; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.samples.tcc.transfer.action.FirstTccAction; -import com.alibaba.fescar.samples.tcc.transfer.dao.AccountDAO; -import com.alibaba.fescar.samples.tcc.transfer.domains.Account; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.transfer.action.FirstTccAction; +import io.seata.samples.tcc.transfer.dao.AccountDAO; +import io.seata.samples.tcc.transfer.domains.Account; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.TransactionCallback; import org.springframework.transaction.support.TransactionTemplate; diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/impl/SecondTccActionImpl.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/impl/SecondTccActionImpl.java similarity index 94% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/impl/SecondTccActionImpl.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/impl/SecondTccActionImpl.java index 0abd1029a..c75d3ae9d 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/action/impl/SecondTccActionImpl.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/action/impl/SecondTccActionImpl.java @@ -1,10 +1,10 @@ -package com.alibaba.fescar.samples.tcc.transfer.action.impl; +package io.seata.samples.tcc.transfer.action.impl; -import com.alibaba.fescar.rm.tcc.api.BusinessActionContext; -import com.alibaba.fescar.samples.tcc.transfer.action.SecondTccAction; -import com.alibaba.fescar.samples.tcc.transfer.dao.AccountDAO; -import com.alibaba.fescar.samples.tcc.transfer.domains.Account; +import io.seata.rm.tcc.api.BusinessActionContext; +import io.seata.samples.tcc.transfer.action.SecondTccAction; +import io.seata.samples.tcc.transfer.dao.AccountDAO; +import io.seata.samples.tcc.transfer.domains.Account; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.TransactionCallback; import org.springframework.transaction.support.TransactionTemplate; diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/activity/TransferService.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/activity/TransferService.java similarity index 84% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/activity/TransferService.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/activity/TransferService.java index 6849ce184..6ab08fc55 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/activity/TransferService.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/activity/TransferService.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.tcc.transfer.activity; +package io.seata.samples.tcc.transfer.activity; /** * 转账服务 diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/activity/impl/TransferServiceImpl.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/activity/impl/TransferServiceImpl.java similarity index 80% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/activity/impl/TransferServiceImpl.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/activity/impl/TransferServiceImpl.java index 4b47110f5..400278dcf 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/activity/impl/TransferServiceImpl.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/activity/impl/TransferServiceImpl.java @@ -1,10 +1,10 @@ -package com.alibaba.fescar.samples.tcc.transfer.activity.impl; +package io.seata.samples.tcc.transfer.activity.impl; -import com.alibaba.fescar.samples.tcc.transfer.action.FirstTccAction; -import com.alibaba.fescar.samples.tcc.transfer.action.SecondTccAction; -import com.alibaba.fescar.samples.tcc.transfer.activity.TransferService; -import com.alibaba.fescar.spring.annotation.GlobalTransactional; +import io.seata.samples.tcc.transfer.action.FirstTccAction; +import io.seata.samples.tcc.transfer.action.SecondTccAction; +import io.seata.samples.tcc.transfer.activity.TransferService; +import io.seata.spring.annotation.GlobalTransactional; /** * 转账服务实现 diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/dao/AccountDAO.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/dao/AccountDAO.java similarity index 80% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/dao/AccountDAO.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/dao/AccountDAO.java index e4e126b5b..8ff201787 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/dao/AccountDAO.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/dao/AccountDAO.java @@ -1,7 +1,7 @@ -package com.alibaba.fescar.samples.tcc.transfer.dao; +package io.seata.samples.tcc.transfer.dao; -import com.alibaba.fescar.samples.tcc.transfer.domains.Account; +import io.seata.samples.tcc.transfer.domains.Account; import java.sql.SQLException; diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/dao/impl/AccountDAOImpl.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/dao/impl/AccountDAOImpl.java similarity index 86% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/dao/impl/AccountDAOImpl.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/dao/impl/AccountDAOImpl.java index e377715b0..7dcdff909 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/dao/impl/AccountDAOImpl.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/dao/impl/AccountDAOImpl.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.transfer.dao.impl; +package io.seata.samples.tcc.transfer.dao.impl; -import com.alibaba.fescar.samples.tcc.transfer.dao.AccountDAO; -import com.alibaba.fescar.samples.tcc.transfer.domains.Account; +import io.seata.samples.tcc.transfer.dao.AccountDAO; +import io.seata.samples.tcc.transfer.domains.Account; import org.mybatis.spring.SqlSessionTemplate; import java.sql.SQLException; diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/domains/Account.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/domains/Account.java similarity index 93% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/domains/Account.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/domains/Account.java index d651b9c4c..39225c55a 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/domains/Account.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/domains/Account.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.tcc.transfer.domains; +package io.seata.samples.tcc.transfer.domains; /** * 账户 diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/env/TransferDataPrepares.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/env/TransferDataPrepares.java similarity index 98% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/env/TransferDataPrepares.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/env/TransferDataPrepares.java index 24bef3c7a..bfc228ed2 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/env/TransferDataPrepares.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/env/TransferDataPrepares.java @@ -1,4 +1,4 @@ -package com.alibaba.fescar.samples.tcc.transfer.env; +package io.seata.samples.tcc.transfer.env; import javax.sql.DataSource; import java.sql.Connection; diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/starter/TransferApplication.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/starter/TransferApplication.java similarity index 91% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/starter/TransferApplication.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/starter/TransferApplication.java index 5f55d7a0c..56777a59b 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/starter/TransferApplication.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/starter/TransferApplication.java @@ -1,10 +1,10 @@ -package com.alibaba.fescar.samples.tcc.transfer.starter; +package io.seata.samples.tcc.transfer.starter; -import com.alibaba.fescar.samples.tcc.transfer.activity.TransferService; -import com.alibaba.fescar.samples.tcc.transfer.dao.AccountDAO; -import com.alibaba.fescar.samples.tcc.transfer.domains.Account; -import com.alibaba.fescar.samples.tcc.transfer.env.TransferDataPrepares; +import io.seata.samples.tcc.transfer.activity.TransferService; +import io.seata.samples.tcc.transfer.dao.AccountDAO; +import io.seata.samples.tcc.transfer.domains.Account; +import io.seata.samples.tcc.transfer.env.TransferDataPrepares; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.util.Assert; @@ -41,7 +41,7 @@ public class TransferApplication { protected static TransferDataPrepares transferDataPrepares; public static void main(String[] args) throws SQLException { - applicationContext = new ClassPathXmlApplicationContext("spring/fescar-tcc.xml", "spring/fescar-dubbo-reference.xml", + applicationContext = new ClassPathXmlApplicationContext("spring/seata-tcc.xml", "spring/seata-dubbo-reference.xml", "db-bean/to-datasource-bean.xml", "db-bean/from-datasource-bean.xml"); transferService = (TransferService) applicationContext.getBean("transferService" ); diff --git a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/starter/TransferProviderStarter.java b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/starter/TransferProviderStarter.java similarity index 78% rename from tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/starter/TransferProviderStarter.java rename to tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/starter/TransferProviderStarter.java index af31c4b0e..ac353f760 100644 --- a/tcc/transfer-tcc-sample/src/main/java/com/alibaba/fescar/samples/tcc/transfer/starter/TransferProviderStarter.java +++ b/tcc/transfer-tcc-sample/src/main/java/io/seata/samples/tcc/transfer/starter/TransferProviderStarter.java @@ -1,8 +1,8 @@ -package com.alibaba.fescar.samples.tcc.transfer.starter; +package io.seata.samples.tcc.transfer.starter; -import com.alibaba.fescar.samples.tcc.transfer.ApplicationKeeper; -import com.alibaba.fescar.samples.tcc.transfer.env.TransferDataPrepares; +import io.seata.samples.tcc.transfer.ApplicationKeeper; +import io.seata.samples.tcc.transfer.env.TransferDataPrepares; import org.apache.curator.test.TestingServer; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -20,7 +20,7 @@ public static void main(String[] args) throws Exception { mockZKServer(); ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext( - new String[] {"spring/fescar-tcc.xml", "spring/fescar-dubbo-provider.xml", + new String[] {"spring/seata-tcc.xml", "spring/seata-dubbo-provider.xml", "db-bean/to-datasource-bean.xml", "db-bean/from-datasource-bean.xml"}); //初始化数据库和账号余额 diff --git a/tcc/transfer-tcc-sample/src/main/resources/db-bean/from-datasource-bean.xml b/tcc/transfer-tcc-sample/src/main/resources/db-bean/from-datasource-bean.xml index ae1c29308..a35c005ac 100644 --- a/tcc/transfer-tcc-sample/src/main/resources/db-bean/from-datasource-bean.xml +++ b/tcc/transfer-tcc-sample/src/main/resources/db-bean/from-datasource-bean.xml @@ -54,6 +54,6 @@ - + \ No newline at end of file diff --git a/tcc/transfer-tcc-sample/src/main/resources/db-bean/to-datasource-bean.xml b/tcc/transfer-tcc-sample/src/main/resources/db-bean/to-datasource-bean.xml index 22713e545..50b1fbb68 100644 --- a/tcc/transfer-tcc-sample/src/main/resources/db-bean/to-datasource-bean.xml +++ b/tcc/transfer-tcc-sample/src/main/resources/db-bean/to-datasource-bean.xml @@ -54,6 +54,6 @@ - + \ No newline at end of file diff --git a/tcc/transfer-tcc-sample/src/main/resources/file.conf b/tcc/transfer-tcc-sample/src/main/resources/file.conf index d1577ff9e..74477b788 100644 --- a/tcc/transfer-tcc-sample/src/main/resources/file.conf +++ b/tcc/transfer-tcc-sample/src/main/resources/file.conf @@ -37,3 +37,15 @@ client { retry.times = 30 } } + +## transaction log store +store { + ## store mode: file、db + mode = "file" + + ## file store + file { + dir = "file_store/tcc/transfer" + } +} + diff --git a/tcc/transfer-tcc-sample/src/main/resources/spring/fescar-tcc.xml b/tcc/transfer-tcc-sample/src/main/resources/spring/fescar-tcc.xml deleted file mode 100644 index 05de01244..000000000 --- a/tcc/transfer-tcc-sample/src/main/resources/spring/fescar-tcc.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tcc/transfer-tcc-sample/src/main/resources/spring/fescar-dubbo-provider.xml b/tcc/transfer-tcc-sample/src/main/resources/spring/seata-dubbo-provider.xml similarity index 86% rename from tcc/transfer-tcc-sample/src/main/resources/spring/fescar-dubbo-provider.xml rename to tcc/transfer-tcc-sample/src/main/resources/spring/seata-dubbo-provider.xml index ec8d666cf..95377c056 100644 --- a/tcc/transfer-tcc-sample/src/main/resources/spring/fescar-dubbo-provider.xml +++ b/tcc/transfer-tcc-sample/src/main/resources/spring/seata-dubbo-provider.xml @@ -31,10 +31,10 @@ - + - + \ No newline at end of file diff --git a/tcc/transfer-tcc-sample/src/main/resources/spring/fescar-dubbo-reference.xml b/tcc/transfer-tcc-sample/src/main/resources/spring/seata-dubbo-reference.xml similarity index 84% rename from tcc/transfer-tcc-sample/src/main/resources/spring/fescar-dubbo-reference.xml rename to tcc/transfer-tcc-sample/src/main/resources/spring/seata-dubbo-reference.xml index 064d883aa..2a942ca7d 100644 --- a/tcc/transfer-tcc-sample/src/main/resources/spring/fescar-dubbo-reference.xml +++ b/tcc/transfer-tcc-sample/src/main/resources/spring/seata-dubbo-reference.xml @@ -31,9 +31,9 @@ - + - + \ No newline at end of file diff --git a/tcc/transfer-tcc-sample/src/main/resources/spring/seata-tcc.xml b/tcc/transfer-tcc-sample/src/main/resources/spring/seata-tcc.xml new file mode 100644 index 000000000..70f4f2e72 --- /dev/null +++ b/tcc/transfer-tcc-sample/src/main/resources/spring/seata-tcc.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tcc/transfer-tcc-sample/src/main/resources/sqlmap/sqlMapConfig.xml b/tcc/transfer-tcc-sample/src/main/resources/sqlmap/sqlMapConfig.xml index b446c8ee8..283ba4d40 100644 --- a/tcc/transfer-tcc-sample/src/main/resources/sqlmap/sqlMapConfig.xml +++ b/tcc/transfer-tcc-sample/src/main/resources/sqlmap/sqlMapConfig.xml @@ -8,7 +8,7 @@ - + diff --git a/tcc/transfer-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServer.java b/tcc/transfer-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServer.java deleted file mode 100644 index b2f2c3f26..000000000 --- a/tcc/transfer-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServer.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.alibaba.fescar.samples.tcc; - -import com.alibaba.fescar.server.Server; - -import java.io.File; -import java.io.IOException; - -/** - * Mock a fescar server - * - * @author zhangsen - */ -public class FescarServer { - - Server server = null; - - public void init() throws IOException { - server = new Server(); - String dataPath = new StringBuilder() - .append(System.getProperty("user.home")).append(File.separator) - .append("fescar").append(File.separator) - .append("transfer-transfer").append(File.separator) - .append("data").toString(); - server.main(new String[]{"8091", dataPath, "127.0.0.1"}); - } -} diff --git a/tcc/transfer-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java b/tcc/transfer-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java deleted file mode 100644 index c9c69ea34..000000000 --- a/tcc/transfer-tcc-sample/src/test/java/com/alibaba/fescar/samples/tcc/FescarServerStarter.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.alibaba.fescar.samples.tcc; - - -import java.io.IOException; - -/** - * Mock a fescar server - * - * @author zhangsen - */ -public class FescarServerStarter { - - public static void main(String[] args) throws IOException { - new FescarServer().init(); - } - -} diff --git a/tcc/transfer-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java b/tcc/transfer-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java new file mode 100644 index 000000000..a9613095d --- /dev/null +++ b/tcc/transfer-tcc-sample/src/test/java/io/seata/samples/tcc/SeataServerStarter.java @@ -0,0 +1,23 @@ +package io.seata.samples.tcc; + + +import io.seata.core.store.StoreMode; +import io.seata.server.Server; + +import java.io.IOException; + +/** + * Mock a seata server + * + * @author zhangsen + */ +public class SeataServerStarter { + + static Server server = null; + + public static void main(String[] args) throws IOException { + server = new Server(); + server.main(new String[]{"8091", StoreMode.FILE.name(), "127.0.0.1"}); + } + +}