負載均衡支持哪些負載策略 負載均衡設計方案



文章插圖
負載均衡支持哪些負載策略 負載均衡設計方案

文章插圖

LVS、HAProxy、Nginx是目前使用最廣泛的三種負載均衡軟件 。
LVS
Lvs 是Linux Virtual Server的簡稱 , 即Linux虛擬服務器 , 是負載均衡的一種調度器 , 現在也已經是linux內核標準的一部分 。可見其重要度 。(是我們中國人自己研發的開源軟件?。?br /> LVS優點:
1、抗負載能力強:工作在網絡4層之上 , 僅作分發之用 , 沒有流量的產生 , 這個特點也決定了它在負載均衡軟件里的性能最強的 , 對內存和cpu資源消耗比較低 。
2、配置性比較低:這是一個缺點也是一個優點 , 因為沒有太多可配置的東西 , 所以并不需要太多接觸 , 大大減少了人為出錯的幾率 。
3、工作穩定:因為其本身抗負載能力很強 , 自身有完整的雙機熱備方案 , 如LVS+Keepalived , 不過我們在項目實施中用得最多的還是LVS/DR+Keepalived 。
4、無流量:LVS只分發請求 , 而流量并不從它本身出去 , 這點保證了均衡器IO的性能不會受到大流量的影響 。
5、應用范圍比較廣:因為LVS工作在4層 , 所以它幾乎可以對所有應用做負載均衡 , 包括http、數據庫、在線聊天室等等 。
【負載均衡支持哪些負載策略 負載均衡設計方案】LVS的缺點:
1、軟件本身不支持正則表達式處理 , 不能做動靜分離;而現在許多網站在這方面都有較強的需求 , 這個是Nginx/HAProxy+Keepalived的優勢所在 。
2、如果是網站應用比較龐大的話 , LVS/DR+Keepalived實施起來就比較復雜了 , 特別后面有Windows Server的機器的話 , 如果實施及配置還有維護過程就比較復雜了 , 相對而言 , Nginx/HAProxy+Keepalived就簡單多了 。
LVS工作模式:
LVS常用的工作模式有DR模式、TUN模式、以及NAT模式
LVS無論NAT及DR模式 , 均要求VS和RS在同一個網段內 , NAT需要把VS當作各個RS的默認網關 ,  DR模式采用修改mac地址直接從數據鏈路層轉發、要求必須在同一個物理網段內 。
Nginx
Nginx是一款輕量級的Web服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器 , 在BSD-like 協議下發行 。其特點是占有內存少 , 并發能力強 。目前國內很多大廠網站都在使用Nginx , 比如:百度、京東、新浪、網易、騰訊、淘寶等 。
Nginx優點:
1、支持高并發:可以承擔高負載壓力且穩定 , 硬件不差的情況下一般能支撐幾萬次的并發量
2、內存消耗少
3、成本低廉
4、配置簡單:Nginx安裝與配置比較簡單 , 測試也比較方便 , 基本能把錯誤日志打印出來 。
5、內置健康檢查:Nginx可以通過端口檢測到服務器內部的故障 , 如根據服務器處理網頁返回的狀態碼、超時等 , 并會把返回錯誤的請求重新提交到另一個節點 。
6、節省帶寬:Nginx對網絡穩定性的依賴非常小 , 理論上能ping通就能進行負載功能 。
7、支持熱部署:Nginx支持熱部署 , 它的自動特別容易 , 并且 , 幾乎可以7天*24小時不間斷運行 , 
Nginx缺點:
1、適應范圍較小 , 僅能支持http、https、Email協議 。
2、對后端服務器的健康檢查 , 只支持通過端口檢測 , 不支持url來檢測 。
Nginx工作模式:
Nginx由內核和模塊組成 。Nginx本身做的工作實際很少 , 當它接到一個HTTP請求時 , 它僅僅是通過查找配置文件將此次請求映射到一個location block.而此location中所配置的各個指令則會啟動不同的模塊去完成工作 , 因此模塊可以看做Nginx真正的勞動工作者 。
通常一個location中的指令會涉及一個handler模塊和多個filter模塊(當然 , 多個location可以復用同一個模塊) 。handler模塊負責處理請求 , 完成響應內容的生成 , 而filter模塊對響應內容進行處理 。用戶根據自己的需要開發的模塊都屬于第三方模塊 。正是有了這么多模塊的支撐 , Nginx的功能才會如此強大 。
HAProxy
HAProxy提供高可用性、負載均衡 , 以及基于TCP(第四層)和HTTP(第七層)的應用程序代理 。特別適用于那些負載特大的web站點 , 這些站點通常又需要會話保持或七層處理 。
HAProxy優點:
1、支持虛擬主機 , 可以工作在4、7層(支持多網段)
2、支持Session的保持 , Cookie的引導;同時支持通過獲取指定的url來檢測后端服務器的狀態 。
3、單純從效率上來講HAProxy會比Nginx有更出色的負載均衡速度 , 在并發處理上也是優于Nginx的 。
4、HAProxy可以對Mysql進行負載均衡 , 對后端的DB節點進行檢測和負載均衡 。
5、HAProxy負載均衡策略多樣
HAProxy缺點:
1、不支持POP/SMTP協議、SPDY協議
3、不支持HTTP cache功能 。即不能做Web服務器
4、重載配置的功能需要重啟進程 , 雖然也是soft restart , 但沒有Nginx的reaload更為平滑和友好 。
5、多進程模式支持不夠好
HAProxy工作模式:
HAProxy實現了一種事件驅動, 單一進程模型 , 此模型支持非常大的并發連接數 。多進程或多線程模型受內存限制 、系統調度器限制以及無處不在的鎖限制 , 很少能處理數千并發連接 。
LVS、HAProxy、LVS對比
接下來給大家分享一下這三款軟件的學習資料 , 大家可以保存收藏!
LVS負載均衡學習資料:
新手快速掌握Nginx無敵教程:
HAProxy學習資料: