大型網站技術架構負載均衡技術介紹及學習資源推薦

2019-08-17     進擊的IT程式設計師

十年間,負載均衡的前沿技術層出不窮,令用戶眼花繚亂。經常在技術網站、文檔中出現的「四層負載均衡」、「七層負載均衡」字眼有什麼含義?有什麼區別?對客戶網絡有哪些不同的優化?


在大型的網站伺服器集群中,負載均衡技術是必不可少的。使用負載均衡的技術架構,能夠有效避免後端服務出現單點故障,提升服務的穩定性。


一、負載均衡簡介

負載均衡,英文名稱為LoadBalance,其意思就是將負載(工作任務)進行平衡,分攤到多個操作單元上進行執行(例如Web伺服器、FTP伺服器等),實現多個伺服器共同完成工作任務的目標。負載均衡建立在現有網絡結構之上,它提升了伺服器的性能、提高了帶寬利用率,增強了網絡的靈活性和可靠性。經過十年的發展,負載均衡已經成為網絡應用的重要設備,甚至成為大型網絡應用的核心設備,與基礎路由、交換設備市場並駕齊驅。

負載均衡構建在現有網絡結構之上,可以方便有效地擴展伺服器資源。通常將大量的並發請求分散至多個節點上分別處理,減少客戶端的等待時間;也可以將單個重負載的運算分擔到多個節點上做並行處理,最後進行匯總。


二、負載均衡的作用




2.1、請求分發

請求分發即按照一定的算法將大量的並發請求分散至多個節點的伺服器上處理,減輕單台伺服器的壓力,減少請求響應時間以及提升系統並發量。


2.2、故障轉移

通過心跳機制檢測判斷各個伺服器的狀態,能夠自動剔除不可用的伺服器並將請求發送可用伺服器,減少服務出現不可用的機率,提高可用性。


2.3、總的來說

網絡負載均衡允許使用相同的群集 IP 地址集指定群集中所有計算機的地址,並且它還為每個主機保留一組唯一專用的 IP 地址。對於負載平衡的應用程式,當主機出現故障或者脫機時,會自動在仍然運行的計算機之間重新分發負載。當計算機意外出現故障或者脫機時,將斷開與出現故障或脫機的伺服器之間的活動連接。任何一種情況下,都可以在準備好時將脫機計算機明確地重新加入群集,並重新共享群集負載,以便使群集中的其他計算機處理更少的流量。


三、負載均衡的分類


平時我們常用的有四層負載均衡和七層負載均衡,四層的負載均衡是基於IP和埠實現的,七層的負載均衡是在四層的基礎上,基於URL等信息實現。


3.1、常用於四層負載均衡的軟體(還有F5、NetScaler等硬體負載均衡器)有:

LVS:重量級軟體,本身不支持正則表達式,部署起來比較麻煩,但是性能高,應用範圍廣,一般的大型網際網路公司都有用到。

HAProxy:輕量級軟體,支持的負載均衡策略非常多,較靈活。

Nginx:輕量級軟體,支持的協議少(HTTP、HTTPS和Email協議),對於Session支持不友好。


3.2、常用於七層負載均衡的軟體有:

HAProxy:全面支持七層代理,靈活性高,支持Session會話保持。

Nginx:可以針對HTTP應用進行分流,正則規則靈活,支持高並發,部署簡單。

Apache:性能較差,一般不考慮。

MySQL Proxy:官方的資料庫中間件,可以實現讀寫分離,負載均衡等功能,但是對分表分庫支持不完善(可選替代品:Atlas,Cobar,TDDL)。


四、技術原理


四層負載均衡類似路由器的轉發,通過修改報文中的目標地址和埠,然後直接轉發給該伺服器,只需要一個TCP連接即可。七層負載均衡通過類似於代理的機制進行轉發,負載均衡伺服器會分別與客戶端和後端的伺服器都建立TCP連接。


五、應用場景

四層負載均衡一般用於TCP應用中,比如基於C/S架構開發的ERP系統。七層負載均衡大多應用於使用HTTP/HTTPS協議搭建的網站和內部平台系統。

從市場份額來看,七層負載均衡設備還是以國外廠商占據主導地位,國內能夠進行自主研發的只有太一星晨等少數的幾家廠商。而且,國內負載均衡廠商應用場景以鏈路負載為主,難以進入占據負載均衡市場70%份額、主導負載均衡技術發展的伺服器負載均衡市場,更缺乏在大型數據中心及大型門戶網站使用案例。


六、福利時刻之如何學習?

對於很多人來說,對於分布式集群這些根本無從學起,如果你已經對基礎的Java基礎掌握住了,想入門分布式的話,特推薦幾本書籍供大家參考,這些書籍比簡單的幾篇文章或幾段視頻更能系統的學習理解,總之很不錯!

《大型網站技術架構:核心原理與案例分析 李智慧》



《大型分布式網站架構設計與實踐 陳康賢》


《大型分布式網站架構設計與實踐 陳康賢》



以上三本書籍本人都看過,感覺很不錯,特推薦給大家

想要教學視頻資源的私信我可以獲取


文章來源: https://twgreatdaily.com/zh-tw/MXJSp2wBvvf6VcSZv3JJ.html