前言
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項目保持連接配接。