1. 程式人生 > >三種LVS負載均衡模式

三種LVS負載均衡模式

lvs

負載均衡集群

1、主流開源軟件:LVS、keepalived、haproxy、nginx等;

▏LVS特點:

  • 抗負載能力強、是工作在網絡4層之上僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟件裏的性能最強的;

  • 配置性比較低,這是一個缺點也是一個優點,因為沒有可太多配置的東西,所以並不需要太多接觸,大大減少了人為出錯的幾率;

  • 工作穩定,自身有完整的雙機熱備方案;

  • 無流量,保證了均衡器IO的性能不會收到大流量的影響;

  • 應用範圍比較廣,可以對所有應用做負載均衡;   

  • 軟件本身不支持正則處理,不能做動靜分離。

▏HAProxy特點:

  • HAProxy的算法多;

  • HAProxy是支持虛擬主機的;

  • 能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作;

  • 支持url檢測後端的服務器出問題的檢測會有很好的幫助;

  • 它跟LVS一樣,本身僅僅就只是一款負載均衡軟件;

  • HAProxy可以對Mysql讀進行負載均衡,對後端的MySQL節點進行檢測和負載均衡,不過在後端的MySQL slaves數量超過10臺時性能不如LVS。

▏Nginx特點:

  • Nginx僅能支持http和Email;

  • 工作在網絡的7層之上,可以針對http應用做一些分流的策略;

  • Nginx對網絡的依賴非常小;

  • Nginx安裝和配置比較簡單,測試起來比較方便;

  • 可以承擔高的負載壓力且穩定,一般能支撐超過幾萬次的並發量;

  • Nginx可以通過端口檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼、超時等。

2、其中LVS屬於4層(網絡OSI 7層模型),nginx屬於7層,haproxy既可以認為是4層,也可以當做7層使用;

3、keepalived的負載均衡功能其實就是lvs;

4、lvs這種4層的負載均衡是可以分發除80外的其他端口通信的,比如MySQL的,而nginx僅僅支持http,https,mail,haproxy也支持MySQL這種;

5、相比較來說,LVS這種4層的更穩定,能承受更多的請求,而nginx這種7層的更加靈活,能實現更多的個性化需求。


LVS

簡介

1、LVS是由國人章文嵩開發;

2、流行度不亞於apache的httpd,基於TCP/IP做的路由和轉發,穩定性和效率很高;

3、LVS最新版本基於Linux內核2.6,有好多年不更新了;

4、LVS有三種常見的模式:NAT、DR、IP Tunnel;

▏NAT模式:

技術分享

▏DR模式:

技術分享

▏IP Tunnel模式:

技術分享

5、LVS架構中有一個核心角色叫做分發器(Load balance),它用來分發用戶的請求,還有諸多處理用戶請求的服務器(Real Server,簡稱rs)。


調度算法

1、輪詢 Round-Robin rr;

2、加權輪詢 Weight Round-Robin wrr;

3、最小連接 Least-Connection lc;

4、加權最小連接 Weight Least-Connection wlc;

5、基於局部性的最小連接 Locality-Based Least Connections lblc;

6、帶復制的基於局部性最小連接 Locality-Based Least Connections with Replication lblcr;

7、目標地址散列調度 Destination Hashing dh;

8、源地址散列調度 Source Hashing sh。


本文出自 “Gorilla City” 博客,請務必保留此出處http://juispan.blog.51cto.com/943137/1964014

三種LVS負載均衡模式