十年間,負載均衡的前沿技術層出不窮,令用戶眼花繚亂。常常在技術網站、文檔中出現的「四層負載均衡」、「七層負載均衡」字眼有什麼含義?有什麼區別?對客戶網絡有哪些不一樣的優化?正則表達式
在大型的網站服務器集羣中,負載均衡技術是必不可少的。使用負載均衡的技術架構,可以有效避免後端服務出現單點故障,提高服務的穩定性。算法
負載均衡,英文名稱爲LoadBalance,其意思就是將負載(工做任務)進行平衡,分攤到多個操做單元上進行執行(例如Web服務器、FTP服務器等),實現多個服務器共同完成工做任務的目標。負載均衡創建在現有網絡結構之上,它提高了服務器的性能、提升了帶寬利用率,加強了網絡的靈活性和可靠性。通過十年的發展,負載均衡已經成爲網絡應用的重要設備,甚至成爲大型網絡應用的核心設備,與基礎路由、交換設備市場並駕齊驅。數據庫
負載均衡構建在現有網絡結構之上,能夠方便有效地擴展服務器資源。一般將大量的併發請求分散至多個節點上分別處理,減小客戶端的等待時間;也能夠將單個重負載的運算分擔到多個節點上作並行處理,最後進行彙總。後端
2.一、請求分發服務器
請求分發即按照必定的算法將大量的併發請求分散至多個節點的服務器上處理,減輕單臺服務器的壓力,減小請求響應時間以及提高系統併發量。微信
2.二、故障轉移網絡
經過心跳機制檢測判斷各個服務器的狀態,可以自動剔除不可用的服務器並將請求發送可用服務器,減小服務出現不可用的機率,提升可用性。多線程
2.三、總的來講架構
網絡負載均衡容許使用相同的羣集 IP 地址集指定羣集中全部計算機的地址,而且它還爲每一個主機保留一組惟一專用的 IP 地址。對於負載平衡的應用程序,當主機出現故障或者脫機時,會自動在仍然運行的計算機之間從新分發負載。當計算機意外出現故障或者脫機時,將斷開與出現故障或脫機的服務器之間的活動鏈接。任何一種狀況下,均可以在準備好時將脫機計算機明確地從新加入羣集,並從新共享羣集負載,以便使羣集中的其餘計算機處理更少的流量。併發
平時咱們經常使用的有四層負載均衡和七層負載均衡,四層的負載均衡是基於IP和端口實現的,七層的負載均衡是在四層的基礎上,基於URL等信息實現。
3.一、經常使用於四層負載均衡的軟件(還有F五、NetScaler等硬件負載均衡器)有:
LVS:重量級軟件,自己不支持正則表達式,部署起來比較麻煩,可是性能高,應用範圍廣,通常的大型互聯網公司都有用到。
HAProxy:輕量級軟件,支持的負載均衡策略很是多,較靈活。
Nginx:輕量級軟件,支持的協議少(HTTP、HTTPS和Email協議),對於Session支持不友好。
3.二、經常使用於七層負載均衡的軟件有:
HAProxy:全面支持七層代理,靈活性高,支持Session會話保持。
Nginx:能夠針對HTTP應用進行分流,正則規則靈活,支持高併發,部署簡單。
Apache:性能較差,通常不考慮。
MySQL Proxy:官方的數據庫中間件,能夠實現讀寫分離,負載均衡等功能,可是對分表分庫支持不完善(可選替代品:Atlas,Cobar,TDDL)。
四層負載均衡相似路由器的轉發,經過修改報文中的目標地址和端口,而後直接轉發給該服務器,只須要一個TCP鏈接便可。七層負載均衡經過相似於代理的機制進行轉發,負載均衡服務器會分別與客戶端和後端的服務器都創建TCP鏈接。
四層負載均衡通常用於TCP應用中,好比基於C/S架構開發的ERP系統。七層負載均衡大多應用於使用HTTP/HTTPS協議搭建的網站和內部平臺系統。
從市場份額來看,七層負載均衡設備仍是以國外廠商佔據主導地位,國內可以進行自主研發的只有太一星晨等少數的幾家廠商。並且,國內負載均衡廠商應用場景以鏈路負載爲主,難以進入佔據負載均衡市場70%份額、主導負載均衡技術發展的服務器負載均衡市場,更缺少在大型數據中心及大型門戶網站使用案例。 6、福利時刻之如何學習? 對於不少人來講,對於分佈式集羣這些根本無從學起,若是你已經對基礎的Java基礎掌握住了,想入門分佈式的話,特推薦幾本書籍供你們參考,這些書籍比簡單的幾篇文章或幾段視頻更能系統的學習理解,總之很不錯!
《大型網站技術架構:核心原理與案例分析 李智慧》
《大型分佈式網站架構設計與實踐 陳康賢》
《大型分佈式網站架構設計與實踐 陳康賢》
以上三本書籍本人都看過,感受很不錯,特推薦給你們,一鍵保存請看下邊(僅供學習交流,禁止用於商業用途,如須要請購買正版,請務必在24小時以內刪除!):
連接地址:pan.baidu.com/s/1mhJiPmS 密碼:39po,連接失效請在文章底部留言郵箱或私信郵箱地址,會在第一時間回覆!