【成爲架構師2-7】TCP負載均衡,長連接的負載均衡策略

系列文章是博主對沈劍的《架構師訓練營》分享內容的個人筆記總結,原內容公衆號“成爲架構師”。

1 單體架構TCP連接與HTTP的負載均衡

單機架構
在這裏插入圖片描述
使用簡單的TCP直連

http負載均衡

http負載均衡通常使用反向代理來實現,這在前面的文章中已經進行了闡述

2 客戶端負載均衡(內置集羣)

客戶端負載均衡就是在客戶端維護一個域名列表,當要發起TCP連接的時候,使用選定的策略選擇其中一個域名,通過dns-server的域名解析得到tcp服務器的ip
在這裏插入圖片描述
高可用如何保持

客戶端需要自己制定重連機制,當發現選擇域名的tcp-server

問題

  1. 多了一次dns解析,速度下降(手機端尤爲明顯)
  2. dns劫持的安全風險

上述問題可以通過ip直連來解決,也就是客戶端保存的不是域名列表,而直接是tcp-server的外網ip

但這一方案的核心問題是:無法進行擴展,如果新增加了tcp-server需要修改客戶端

所以將負載均衡策略會有諸多的問題

3 服務單負載均衡(靜態IP列表)

每一次訪問tcp-server之前先訪問一個新增的http服務器來獲取tcp-server的ip
在這裏插入圖片描述
這一web-server將向客戶端返回一個可用的tcp-server的ip

高可用方案

如何保證高可用呢?對於客戶端負載均衡策略來說,客戶端能夠知道tcp-server不可用了而選擇新的tcp-server,這裏同理客戶端也可以重新請求一次web-server來獲取tcp-server,但是它還有可能返回不可用的tcp-server,嚴重浪費資源,所以必須要有機制來保證tcp-server的狀態對web-server來說是可知的

服務狀態上報

在這裏插入圖片描述
這有一個明顯的缺點就是出現了反向依賴,tcp-server不應該依賴一個只是作爲獲取其ip的簡單服務器,它應該只關心自己的業務,對於它的狀態是否可用應該由屬於這一範疇的事物來維護

服務狀態拉取

在這裏插入圖片描述
由web-server去主動的獲取各個tcp-server的狀態,監聽它們的可用狀態,以及是否過載,完全地承擔負載均衡的職責


上一篇回顧:【成爲架構師2-6】CDN:就近訪問,緩解網絡擁塞
下一篇更精彩:持續更新中…

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