LCN协调者服务集群
官方文档: https://github.com/codingapi/tx-lcn/wiki/TxManager%E9%9B%86%E7%BE%A4%E8%AF%B4%E6%98%8E
核心原理 通过该实现类
NettyDistributeServiceImpl 38行获取服务器集群地址
思路:
Redis用来缓存 TxManager 的分组信息,集群时候要保证TxManager连接到同一个redis 就好了
所以 参与方 发起方 不用考虑集群环境下 到底连接那个TxManager
通过Redis去代理时候,如果有宕机的情况 轮训到下一个TxManager 数据一致呀
1.1 LCN获取tm事务协调者注册地址
LCN客户端项目启动时候,读取配置文件tm事务协调者注册地址
向该事务协调者注册地址发送一个请求,获取对应的lcn底层协议ip和端口号(Netty通讯)
向该lcn底层协议ip和端口号建立一个长连接,保持会话信息
如果LCN客户端与事务协调者保持长连接端口后,那么LCN客户端在通过Nginx负载均衡实现故障转移轮训到下一台事务协调者服务器获取对应的LCN底层协议IP和端口号,并且建立长连接 。
搭建过程:
1.首先通过nginx配置多个tm协调者负载均衡配置,让后 LCN客户端启动项目的时候访问nginx负载均衡地址获取lcn协议通讯IP地址和端口号,并且对该连接保持长连接。
2.因为LCN客户端与TM协调者保持的是长连接,当tm协调者宕机之后,LCN会客户端会立即重新进入到获取负载均衡地址lcn协议通讯IP地址和端口号。
第一步:
配置:
访问:
访问: