博主记录一次学习使用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时间内,参与方没有收到提交事务的通知,会自动进行回滚。
(以修改源码)