負載平衡採用叢集部署,可實現會話同步,以消除伺服器單點故障,提升冗餘,保證服務的穩定性。

阿里雲當前提供四層(TCP協議和UDP協議)和七層(HTTP和HTTPS協議)的負載平衡服務。

  • 四層採用開源軟體LVS(Linux Virtual Server)+ keepalived的方式實現負載平衡,並根據云計算需求對其進行了個人化定製。
  • 七層採用Tengine實現負載平衡。Tengine是由淘寶網發起的Web伺服器項目,它在Nginx的基礎上,針對有大訪問量的網站需求,添加了很多進階功能和特性。

如下圖所示,各個地域的四層負載平衡實際上是由多台LVS機器部署成一個LVS叢集來啟動並執行。採用叢集部署模式極大地保證了異常情況下負載平衡服務的可用性、穩定性與可擴充性。



LVS叢集內的每台LVS都會進行會話,通過組播報文同步到該叢集內的其它LVS機器上,從而實現LVS叢集內各台機器間的會話同步。如下圖所示,當用戶端向服務端傳輸三個資料包後,在LVS1上建立的會話A開始同步到其它LVS機器上。圖中實線表示現有的串連,圖中虛線表示當LVS1出現故障或進行維護時,這部分流量會走到一台可以正常啟動並執行機器LVS2上。因而負載平衡叢集支援熱升級,並且在機器故障和叢集維護時最大程度對使用者透明,不影響使用者業務。

说明 對於串連未建立(三向交握未完成),或者已建立串連但未觸發會話同步機制,熱升級不保證串連不中斷,需要依靠用戶端重新發起串連。