推薦公衆號
有彩蛋哦!!!(或者公衆號內點擊網賺獲取彩蛋)
如有其它意見歡迎指正微信 zzh_1_2_3
正文
1.按照demo例子下載,配置
https://github.com/seata/seata-samples/blob/master/springcloud-nacos-seata/README.md
2.jar引用
gradle:
// https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-alibaba-seata
implementation group: 'com.alibaba.cloud', name: 'spring-cloud-alibaba-seata', version: '2.1.0.RELEASE'
// https://mvnrepository.com/artifact/io.seata/seata-all
implementation group: 'io.seata', name: 'seata-all', version: '1.0.0'
maven:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-seata</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-all</artifactId>
<version>1.0.0</version>
</dependency>
3.項目中配置代理數據源
/**
* 數據源配置
*
* @author HelloWoodes
*/
@Configuration
public class DataSourceConfig {
@Bean
public HikariDataSource hikariDataSource() {
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setUsername("root");
hikariConfig.setPassword("zzh123");
hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/qtjuaa?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC");
hikariConfig.setPoolName("Hikari");
hikariConfig.setAutoCommit(false);
HikariDataSource hikariDataSource = new HikariDataSource(hikariConfig);
return hikariDataSource;
}
/**
* 需要將 DataSourceProxy 設置爲主數據源,否則事務無法回滾
*
* @return The default datasource
*/
@Primary
@Bean("dataSource")
public DataSource dataSource(HikariDataSource hikariDataSource) {
return new DataSourceProxy(hikariDataSource);
}
}
4.啓動類排除數據源自動注入
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
5.配置文件添加組名
cloud:
alibaba:
seata:
tx-service-group: scheduling-service-group
6.項目中添加
registr.conf
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
serverAddr = "127.0.0.1"
namespace = "public"
cluster = "default"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "127.0.0.1"
namespace = ""
cluster = "default"
}
}
7.效果
回滾
2020-01-02 16:45:18.821 DEBUG 11704 --- [ XNIO-1 task-1] c.a.c.seata.web.SeataHandlerInterceptor : xid in RootContext null xid in RpcContext 10.218.129.116:8091:2031660206
2020-01-02 16:45:18.822 DEBUG 11704 --- [ XNIO-1 task-1] io.seata.core.context.RootContext : bind 10.218.129.116:8091:2031660206
。。。。。。
2020-01-02 16:45:19.771 DEBUG 11704 --- [atch_RMROLE_1_8] i.s.core.rpc.netty.RmMessageListener : branch rollback result:xid=10.218.129.116:8091:2031660206,branchId=2031660207,branchStatus=PhaseTwo_Rollbacked,result code =Success,getMsg =null
。。。。。。
正常
2020-01-02 16:37:37.526 DEBUG 21288 --- [ XNIO-1 task-1] io.seata.core.context.RootContext : bind 10.218.129.116:8091:2031660201
2020-01-02 16:37:37.527 INFO 21288 --- [ XNIO-1 task-1] i.seata.tm.api.DefaultGlobalTransaction : Begin new global transaction [10.218.129.116:8091:2031660201]
2020-01-02 16:37:37.527 DEBUG 21288 --- [ XNIO-1 task-1] c.e.q.aop.logging.LoggingAspect : Enter: com.ecidi.qianguanju.service.dingtalk.DingTalkInfoService.test() with argument[s] = [pit_chec]
2020-01-02 16:37:37.867 DEBUG 21288 --- [ XNIO-1 task-1] c.e.qianguanju.fegin.SchedulingClient : [SchedulingClient#bpmBusLinkUpdate] ---> PUT http://scheduling/api/qtj/testa?type=pit_chec HTTP/1.1
2020-01-02 16:37:38.202 DEBUG 21288 --- [ XNIO-1 task-1] c.e.qianguanju.fegin.SchedulingClient : [SchedulingClient#bpmBusLinkUpdate] <--- HTTP/1.1 200 OK (335ms)
2020-01-02 16:37:38.209 DEBUG 21288 --- [ XNIO-1 task-1] c.e.q.aop.logging.LoggingAspect : Exit: com.ecidi.qianguanju.service.dingtalk.DingTalkInfoService.test() with result = null
2020-01-02 16:37:38.217 DEBUG 21288 --- [ XNIO-1 task-1] i.s.core.rpc.netty.AbstractRpcRemoting : offer message: xid=10.218.129.116:8091:2031660201,extraData=null
2020-01-02 16:37:38.217 DEBUG 21288 --- [geSend_TMROLE_1] i.s.core.rpc.netty.AbstractRpcRemoting : write message:SeataMergeMessage xid=10.218.129.116:8091:2031660201,extraData=null
, channel:[id: 0x4970c5b3, L:/10.218.129.116:55462 - R:/10.218.129.116:8091],active?true,writable?true,isopen?true
2020-01-02 16:37:38.225 DEBUG 21288 --- [ XNIO-1 task-1] io.seata.core.context.RootContext : unbind 10.218.129.116:8091:2031660201
。。。。。。