基礎架構數據庫
負載均衡採用集羣部署,可實現會話同步,以消除服務器單點故障,提高冗餘,保證服務的穩定性。阿里雲當前提供四層(TCP協議和UDP協議)和七層(HTTP和HTTPS協議)的負載均衡服務。後端
四層採用開源軟件LVS(Linux Virtual Server)+ keepalived的方式實現負載均衡,並根據雲計算需求對其進行了個性化定製。服務器
七層採用Tengine實現負載均衡。Tengine是由淘寶網發起的Web服務器項目,它在Nginx的基礎上,針對有大訪問量的網站需求,添加了不少高級功能和特性。架構
以下圖所示,各個地域的四層負載均衡其實是由多臺LVS機器部署成一個LVS集羣來運行的。採用集羣部署模式極大地保證了異常狀況下負載均衡服務的可用性、穩定性與可擴展性。負載均衡
LVS集羣內的每臺LVS都會進行會話,經過組播報文同步到該集羣內的其它LVS機器上,從而實現LVS集羣內各臺機器間的會話同步。以下圖所示,當客戶端向服務端傳輸三個數據包後,在LVS1上創建的會話A開始同步到其它LVS機器上。圖中實線表示現有的鏈接,圖中虛線表示當LVS1出現故障或進行維護時,這部分流量會走到一臺能夠正常運行的機器LVS2上。於是負載均衡集羣支持熱升級,而且在機器故障和集羣維護時最大程度對用戶透明,不影響用戶業務。網站
注意:對於鏈接未創建(三次握手未完成),或者已創建鏈接但未觸發會話同步機制,熱升級不保證鏈接不中斷,須要依靠客戶端從新發起鏈接。阿里雲
使用場景雲計算
負載均衡主要應用於如下場景中:spa
若是您的應用訪問量很高,您能夠經過配置監聽規則將流量分發到不一樣的ECS實例上。此外,您可使用會話保持功能將同一客戶端的請求轉發到同一臺後端ECS,提升訪問效率。對象
您能夠根據業務發展的須要,經過隨時添加和移除ECS實例來擴展應用系統的服務能力,適用於各類Web服務器和App服務器。
您能夠在負載均衡實例下添加多臺ECS實例。當其中一部分ECS實例發生故障後,負載均衡會自動屏蔽故障的ECS實例,將請求分發給正常運行的ECS實例,保證應用系統仍能正常工做。
爲了提供更加穩定可靠的負載均衡服務,阿里雲負載均衡已在各地域部署了多可用區以實現同地域容災。當主可用區出現機房故障或不可用時,負載均衡仍然有能力在很是短的時間內(大約30s中斷)切換到另一個備可用區恢復服務能力;當主可用區恢復時,負載均衡一樣會自動切換到主可用區提供服務。
使用負載均衡時,您能夠將負載均衡實例部署在支持多可用區的地域以實現同城容災。此外,建議您結合自身的應用須要,綜合考慮後端服務器的部署。若是您的每一個可用區均至少添加了一臺ECS實例,那麼此種部署模式下的負載均衡服務的效率是最高的。
以下圖所示,在負載均衡實例下綁定不一樣可用區的ECS實例。正常狀況下,用戶訪問流量將轉發至主可用區內的ECS實例;當可用區A發生故障時,用戶訪問流量將轉發至備可用區內的ECS實例。此種部署既能夠避免由於單個可用區的故障而致使對外服務的不可用,也能夠經過不一樣產品間可用區的選擇來下降延遲。
若是您採起以下圖所示的部署方案,即在負載均衡實例的主可用區下綁定多臺ECS實例,而在備可用區沒有任何ECS實例。當主可用區發生故障時會形成業務中斷,由於備可用區沒有ECS實例來接收請求。這樣的部署方式很明顯是以犧牲高可用性爲代價來獲取低延時。
您能夠在不一樣地域下部署負載均衡實例,並分別掛載相應地域內不一樣可用區的ECS。上層利用雲解析作智能DNS,將域名解析到不一樣地域的負載均衡實例服務地址下,可實現全局負載均衡。當某個地域出現不可用時,暫停對應解析便可實現全部用戶訪問不受影響。
關於負載均衡的詳細內容:
負載均衡入門與產品使用指南
(負載均衡(Server Load Balancer)是對多臺雲服務器進行流量分發的負載均衡服務,能夠經過流量分發擴展應用系統對外的服務能力,經過消除單點故障提高應用系統的可用性。
本課程主要介紹負載均衡的相關技術以及阿里雲負載均衡產品的使用方法)
更多精品課程:
阿里雲大學官網(阿里雲大學 - 官方網站,雲生態下的創新人才工場)