此文为装载,前面根据自己参考的资料搭建时遇到问题先说明一下
1,tx-manager是个什么东西? 它是独立的服务,要想实现分布式事务,要把它注册到Eureka,与其他服务一样配置
2,到底下载哪个tx-manager,大部分文章给了下面这个地址,是图2这个东西吗?我下载的并不是这个
3,gradle依赖问题:我用的是gradle,开始依赖的jar,没有排除日志依赖,导致日志冲突,无法启动,gradle依赖如图3
4,启动报错,找不到tx.properties文件问题,应该把下文中TxManagerTxUrlServiceImpl类,定义为配置类如图4
5,配置Erueka,我下载的tx-manager如图5,没有bootstrap.yml文件,为了统一cloud配置,我把properties中配置放到这个配置文件中,其实除了自身的端口和服务名外,其他跟其他微服务一样
6,先启动tx-manager,必须先启动该服务,不然先启动其他服务会报错;切换到tx-manager所在文件,通过命令启动,如图6
7,跨服务调用失败,我在测试时,想跨服务调用另外一个服务修改接口,结果无法调通,报错内容是-无法连接主机;然后我把tx-manager相关依赖去掉可以调通,说明原因在这里,未解决
图2
图3
compile('com.codingapi:transaction-springcloud:4.1.0'){ exclude group: 'org.slf4j', module: '*' } compile('com.codingapi:tx-plugins-db:4.1.0'){ exclude group: 'org.slf4j', module: '*' }
图4
图5

图6

————————————————————————————————————————————-
本人使用LCN4.1.0版本(数据库是mysql,注册中心eureka)
LCN分布式事务官网:http://www.txlcn.org/
springcloud的demo:https://github.com/codingapi/springcloud-lcn-demo
tx-manager事务控制器服务端:https://github.com/codingapi/tx-lcn
1、maven依赖
作者提供的tx-manager是LCN分布式事务的事务中间件,需要springcloud微服务框架需要与tx-manager进行通信,通过tx-manager协调微服务之间的事务调用。
tx-manager需要配置redis和注册中心(源码默认配置eureka,参考作者官网也可以配置zookeeper)
配置在源码的application.property文件
3、微服务中引入LCN事务
(1)配置tx-manager的url地址,每个微服务都需要配置
方式一: 使用默认方式是添加tx.properties文件,内容如下
#txmanager地址
url=http://127.0.0.1:8899/tx/manager/
方式二: 自定义url的配置.
编写配置文件到application.properties文件下
key:tm.manager.url
如tm.manager.url=http://127.0.0.1:8899/tx/manager/。
重写读取配置文件的类TxManagerTxUrlService。
注:同时也要添加普通的spring事务注解
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206238.html原文链接:https://javaforall.net
