前言
LCN5.0版本与LCN4.0版本的集群配置方式有很大的区别。
可以直接在官网上查看文档。目前这个时间点文档还是描述5.0版本的,可能以后会更新。
https://www.txlcn.org/zh-cn/docs/setting/distributed.html
以下是官网文档的截图。
下边是本人观看文档之后的知识总结
一、服务端(TxManager)
集群非常简单,相比4.0版本需要使用nginx进行负载均衡,5.0版本只需要让各个TxManager连接的mysql和redis是一样的就可以了。但是需要对mysql和redis进行集群搭建,否则mysql或者redis挂了的话,LCN也就挂了。
二、客户端
通俗的讲,客户端配置多个TxManager服务地址的目的是,客户端可以同时连接多个TxManager,当其中有一个挂了,还有其他的TxManager可以使用;想要给集群增加TxManager,也不需要修改客户端TxManager服务地址的配置,因为多个TxManager连接的是同一个mysql和redis,它们会相互通知。
客户端与TxManager连接原理:
1.客户端项目启动的时候,会读取配置文件TxManager注册地址。
2.向读取到的TxManager发送一个请求,获取对应的底层协议ip和端口号(Netty通讯)。
3.与TxManager建立一个长连接,保持会话消息。
三、实践心得
配置了两个TxManager项目,一个客户端项目。
客户端项目启动时连接了这两个TxManager项目。
然后我再配置多一个TxManager项目,在启动项目时,打印了下图所示的日志信息
可以看出来,新配置的TxManager跟原先的TxManager进行了通信,之后将客户端service-order给注册进来了。
之后我将之前的那两个TxManager项目关闭,发现客户端依然是会跟新配置的TxManager项目保持连接。