参考官网介绍:https://www.txlcn.org/zh-cn/docs/setting/distributed.html
负载集群分为业务模块与TxManager
- 业务模块负载集群说明
模块的集群集群基于springcloud或dubbo机制,集群的方式都是围绕服务发现来完成的,关于模块的负载集群配置这里将不阐述,可参考dubbo与springcloud资料。
- TxManager集群说明
TxManager集群比较简单,只需要控制TxManager下的db资源相同(mysql 、redis)部署多份即可,注意TxManager负载均衡5.0版本与之前版本机制不同。
5.0版本只需要让各个TxManager连接的mysql和redis是一样的就可以了。但是需要对mysql和redis进行集群搭建,否则mysql或者redis挂了的话,LCN也就挂了。
TX-LCN 负载均衡介绍
使用步骤:
-
首选需要启动多个TxManager服务。
-
在客户端配置TxManager服务地址。
tx-lcn.client.manager-address=127.0.0.1:8070,127.0.0.1:8072
原理介绍:
当有事务请求客户端时事务发起端会随机选择一个可用TxManager作为事务控制方,然后告知其参与模块都与该模块通讯。
目前TX-LCN的负载机制仅提供了随机机制。
- 关于tx-lcn.client.manager-address的注意事项:
-
客户端在配置上tx-lcn.client.manager-address地址后,启动时必须要全部可访问客户端才能正常启动。
-
当tx-lcn.client.manager-address中的服务存在不可用时,客户端会重试链接8次,超过次数以后将不在重试,重试链接的间隔时间为6秒,当所有的TxManager都不可访问则会导致所有的分布式事务请求都失败回滚。
-
当增加一个新的TxManager的集群模块时不需要添加到tx-lcn.client.manager-address下,TxManager也会广播到所有的TxManager端再通知所有链接中的TxClient端新的TxManager加入。TC配置集群时,不用制定集群里的所有地址。