TCC-Transaction Dubbo 项目 demo
最早接触 TCC-TRANSACTION 在16年,当时团队成员做了分布式事务的选型研究,可惜没有亲自参与研读代码,后边项目分布式事务的架构基本上使用了seata 和 rocket 事务消息,或者使用消息做最终一致性。
在成为架构师的学习路上,分布式事务的深入研究必不可少,以TCC-TRANSACTION 作为切入点。
#搭建dubbo tcc 项目
先上代码: https://github.com/andycom/SpringBoot-dubbo-study/releases/tag/demo
首先参考的官方demo
这里代码基本上是复制官方的dubbo 代码,但是在dubbo 服务中心使用了
<dependency> <groupId>org.mengyun</groupId> <artifactId>tcc-transaction-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency> <dependency> <groupId>org.mengyun</groupId> <artifactId>tcc-transaction-dubbo</artifactId> <version>2.0.0</version> </dependency>
基于springboot 的自动组装
配置文件:
spring: profiles: active: dev tcc: storage: storage-type: remoting domain: "TCC:DUBBO:CAPITAL" recovery: recovery-enabled: true update-job-forcibly: true registry: registry-type: direct cluster-name: default direct: server-addresses: 127.0.0.1:12332 zookeeper: connect-string: 127.0.0.1:2181 max-retries: 4 # zookeeper: # connect-string: 127.0.0.1:2181 # max-retries: 4 # nacos: # server-addr: 127.0.0.1:8848 application: name: dubboTccCapital dubbo: scan: base-packages: com.fancv.tcc.captial.service.impl protocol: name: dubbo port: 20882 registry: address: zookeeper://192.168.0.23:2181 application: id: dubboTccCapital name: dubboTccCapital server: port: 7091 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.fancv.tcc.captial.dao
storage-type 可以选择 memory
如果选择了remoting 事先需要启动 官方的tcc-transaction-server 项目
本地化数据库
官方实例直接用了内存数据库,为了方便研究,数据源我改成了mysql
下一篇:
高性能高可靠性高扩展性分布式防火墙架构