2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > SpringCloud - LCN分布式事务框架

SpringCloud - LCN分布式事务框架

时间:2022-01-03 22:32:49

相关推荐

SpringCloud - LCN分布式事务框架

官网:/

LCN原理:/codingapi/tx-lcn/wiki/LCN%E5%8E%9F%E7%90%86

入门测试:

1.启动redis服务

注意:自己的是否配置过密码,否则会导致最后测试失败

​​​​2.启动eureka服务

3.启动tx-manager

1.下载资源:/codingapi/tx-lcn

2.先配置:

3.然后启动 -cmd执行命令java -jar tx-manager-4.1.0.jar

4.测试:http://127.0.0.1:8899/

4.配置client客户端

Tx-client:

<lcn.last.version>4.1.0</lcn.last.version><dependency><groupId>com.codingapi</groupId><artifactId>tx-plugins-db</artifactId><version>{lcn.last.version}</version></dependency><dependency><groupId>com.codingapi</groupId><artifactId>transaction-springcloud</artifactId><version>{lcn.last.version}</version></dependency>

配置:

也可看官方案例- 两个client配置

演示:可下载官方给出的springcloud LCN分布式事务示例demo -->/codingapi/springcloud-lcn-demo

Controller:

service:

②中可看具体案例:

然后数据库建库建表

最后运行测试:启动

访问http://127.0.0.1:7001/

http://127.0.0.1:8083/demo/save数据库会多出2条数据

放开demo1中异常回滚数据没有数据添加

如果没有异常数据库两条数据添加(test和test1库中各1条)

demo2

①分布式事务起始服务方

@Transactional@TxTransaction(isStart = true)public int addAcount(String logId){int i = yiViUserAccountMapper.increaseAccount("100","71d8beff-9e70-11e7-9a60-00163e0a3457");int n = paymentDispatchFeignClient.test(logId); //调用失败if(n == 0){throw new RuntimeException("服务调用失败");}return i + n;}

②被调用服务方

@Override@Transactional@TxTransactionpublic int test(String logId) throws YiViException {int i = yiViDispatchOrderStatusLogMapper.deleteByPrimaryKey(logId);return i;}

具体可下载源码分析哦:/s/19IzIYiccV3vkDrnt8hjGeQ

---------------------

转自:/qq_38225558/article/details/86133637

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。