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

原文地址:https://www.fancv.com/article/1661351673

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...