博主记录一次学习使用LCN的过程:

  • 导入LCN的依赖jar包
  • 使用LCN很简单 加个注解就OK了

搭建如下:

  • LCN项目,先搭建事务协调者:
  • 需要Redis,事务分组ID都是缓存到Redis中的

导入TxManager的整合项目,配置

关于LCN分布式事务框架-LMLPHP

  • Redis 信息:  用于缓存分组ID

关于LCN分布式事务框架-LMLPHP

  • 启动项目的Eureka
  • 然后启动 管理者 TxManager

访问:

关于LCN分布式事务框架-LMLPHP

底层通信的端口号是 999 走的是netty协议


整合到项目中去:

pom.xml

添加:

        <dependency>
<groupId>com.codingapi</groupId>
<artifactId>transaction-springcloud</artifactId>
<version>4.1.2</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.codingapi</groupId>
<artifactId>tx-plugins-db</artifactId>
<version>4.1.2</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

添加到servive实现类的项目 代码pom中

同时添加两个实现:

关于LCN分布式事务框架-LMLPHP

关于LCN分布式事务框架-LMLPHP

关于LCN分布式事务框架-LMLPHP

同时每个的application.yml中添加:

tm:
manager:
url: http://127.0.0.1:8899/tx/manager/

注册到LCN事务管理者里面

代码中:

关于LCN分布式事务框架-LMLPHP

关于LCN分布式事务框架-LMLPHP

这样就OK了

启动Eureka,启动TxManager ,启动order 启动 stock

TxMmanager 的管理界面:

关于LCN分布式事务框架-LMLPHP

默认5S时间内,参与方没有收到提交事务的通知,会自动进行回滚。

(以修改源码)

04-23 09:22