博主记录一次学习使用LCN的过程:
- 导入LCN的依赖jar包
- 使用LCN很简单 加个注解就OK了
搭建如下:
- LCN项目,先搭建事务协调者:
- 需要Redis,事务分组ID都是缓存到Redis中的
导入TxManager的整合项目,配置
- Redis 信息: 用于缓存分组ID
- 启动项目的Eureka
- 然后启动 管理者 TxManager
访问:
底层通信的端口号是 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中
同时添加两个实现:
同时每个的application.yml中添加:
tm:
manager:
url: http://127.0.0.1:8899/tx/manager/
注册到LCN事务管理者里面
代码中:
这样就OK了
启动Eureka,启动TxManager ,启动order 启动 stock
TxMmanager 的管理界面:
默认5S时间内,参与方没有收到提交事务的通知,会自动进行回滚。
(以修改源码)