三種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負載均衡模式