TX-LCN TM集羣與負載均衡設計方案 草稿

TM集羣特點

1) 所有節點對等,爲P2P結構,不存在主從節點。
2) 節點之間無數據通信,也就是講,節點之各節點相互獨立。(TM有無交換信息待確認?)

TM集羣示例圖

在這裏插入圖片描述

TC端

在這裏插入圖片描述
TC端會保存所有TM的實例清單

TM端

TM端會提供一些接口,反應當前的狀態信息,比如最近一段時間內的併發量,請求成功率等。以方便TC選擇合適的TM端進行請求

事務發起方使用TM時序圖

在這裏插入圖片描述

  1. 本地服務A(TC1)在啓動時讀取本地TM集羣配置。
  2. 使用客戶端負載均衡,由負載均衡策略,決定使用哪一個TM節點
  3. 當前選擇節點2,將當前事務組所處TM節點保存到TransactionInfo
  4. 服務A調用服務B,在RPC調用的過程,也會攜帶TM節點信息
  5. 服務B在加入事務後,加入到調用發起方所在事務組
  6. 繼續執行後續內容

這樣,tc調用的TM節點會使用當前的負載均衡策略選擇節點,相對於單TM節點,TM集羣分攤了整個應用的調用壓力,可以很好的提高併發量。
總結來說,該機制主要有以下特點

  1. 使用客戶端負載均衡 ,由事務發起方TC決定使用哪個TM
  2. 服務A和服務B在進行RPC調用時,需攜帶事務發起方所在TM節點

常用負載均衡策略

  1. 輪詢策略(RoundRobinRule)
    輪詢策略就是拿到所有的服務節點的列表,對所有節點進行固定排序,挨個請求
    當請求到最後一個節點的情況下,下次請求從第一個節點開始

  2. 隨機策略(RandomRule)
    拿到所有的服務節點的列表後,對現有可訪問節點,隨機抽取一個進行訪問

  3. 併發量最小可用策略
    TC定時主動去拉去TM的狀態信息,TM會返回最近一段時間的併發量統計數據,選擇一個併發量最小的並且可用的TM去訪問。

其他可用策略待添加

客戶端負載均衡技術選型方案

一、 自己實現

維護TM列表

tc本地配置文件會配置所有TM集羣的節點

txlcn:
  tm:
    server: 192.168.100.1:8070,192.168.100.2:8070,192.168.100.3:8070

TC會定時檢查列表中的TM狀態。維護可用TM列表

負載均衡

自己去實現所有負載均衡策略

優缺點

優點: 適用性強,適合所有體系結構比如Dubbo,spring cloud
缺點:需要自己開發,剛出來肯定不完善

二、使用現成爲微服務體系內組件

以Spring Cloud爲例

維護TM列表

所有TM都註冊到nacos中,由Nacos維護TM列表
在這裏插入圖片描述

負載均衡

由Ribbon實現負載均衡,Ribbon有比較完善的負載均衡策略

優缺點

優點: 複雜實現都存在,調用即可
缺點:適用性差,不同體系結構使用組件不一樣,比如註冊中心有eureka,nacos,zookeeper,consul等,各不相同,需要做兼容處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章