几种网络负载均衡方法比较
現在網絡中常見的的負載均衡主要分為兩種:一種是通過硬件來進行進行,常見的硬件有比較昂貴的NetScaler、F5、Radware和Array等商用的負載均衡器,也有類似于LVS、Nginx、HAproxy的基于Linux的開源的負載均衡策略,
商用負載均衡里面NetScaler從效果上比F5的效率上更高。對于負載均衡器來說,不過商用負載均衡由于可以建立在四~七層協議之上,因此適用面更廣所以有其不可替代性,他的優點就是有專業的維護團隊來對這些服務進行維護、缺點就是花銷太大,所以對于規模較小的網絡服務來說暫時還沒有需要使用。
另一種負載均衡的方式是通過軟件:比較常見的有LVS、Nginx、HAproxy等,其中LVS是建立在四層協議上面的,而另外Nginx和HAproxy是建立在七層協議之上的,下面分別介紹關于
LVS:使用集群技術和Linux操作系統實現一個高性能、高可用的服務器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。
LVS的特點是:
1、抗負載能力強、是工作在網絡4層之上僅作分發之用,沒有流量的產生;
2、配置性比較低,這是一個缺點也是一個優點,因為沒有可太多配置的東西,所以并不需要太多接觸,大大減少了人為出錯的幾率;
3、工作穩定,自身有完整的雙機熱備方案;
4、無流量,保證了均衡器IO的性能不會收到大流量的影響;
5、應用范圍比較廣,可以對所有應用做負載均衡;
6、LVS需要向IDC多申請一個IP來做Visual IP,因此需要一定的網絡知識,所以對操作人的要求比較高。
Nginx的特點是:
1、工作在網絡的7層之上,可以針對http應用做一些分流的策略,比如針對域名、目錄結構;
2、Nginx對網絡的依賴比較小;
3、Nginx安裝和配置比較簡單,測試起來比較方便;
4、也可以承擔高的負載壓力且穩定,一般能支撐超過1萬次的并發;
5、Nginx可以通過端口檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼、超時等等,并且會把返回錯誤的請求重新提交到另一個節點,不過其中缺點就是不支持url來檢測;
6、Nginx對請求的異步處理可以幫助節點服務器減輕負載;
7、Nginx能支持http和Email,這樣就在適用范圍上面小很多;
8、不支持Session的保持、對Big request header的支持不是很好,另外默認的只有Round-robin和IP-hash兩種負載均衡算法。
HAProxy的特點是:
1、HAProxy是工作在網絡7層之上。
2、能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作
3、支持url檢測后端的服務器出問題的檢測會有很好的幫助。
4、更多的負載均衡策略比如:動態加權輪循(Dynamic Round Robin),加權源地址哈希(Weighted Source Hash),加權URL哈希和加權參數哈希(Weighted Parameter Hash)已經實現
5、單純從效率上來講HAProxy更會比Nginx有更出色的負載均衡速度。
6、HAProxy可以對Mysql進行負載均衡,對后端的DB節點進行檢測和負載均衡。
現在網站發展的趨勢對網絡負載均衡的使用是隨著網站規模的提升根據不同的階段來使用不同的技術:
第一階段:利用Nginx或者HAProxy進行單點的負載均衡,這一階段服務器規模剛脫離開單服務器、單數據庫的模式,需要一定的負載均衡,但是仍然規模較小沒有專業的維護團隊來進行維護,也沒有需要進行大規模的網站部署。這樣利用Nginx或者HAproxy就是第一選擇,此時這些東西上手快,配置容易,在七層之上利用HTTP協議就可以。這時是第一選擇
第二階段:隨著網絡服務進一步擴大,這時單點的Nginx已經不能滿足,這時使用LVS或者商用F5就是首要選擇,Nginx此時就作為LVS或者F5的節點來使用,具體LVS或者F5的是選擇是根據公司規模,人才以及資金能力來選擇的,這里也不做詳談,但是一般來說這階段相關人才跟不上業務的提升,所以購買商業負載均衡已經成為了必經之路。
第三階段:這時網絡服務已經成為主流產品,此時隨著公司知名度也進一步擴展,相關人才的能力以及數量也隨之提升,這時無論從開發適合自身產品的定制,以及降低成本來講開源的LVS,已經成為首選,這時LVS會成為主流。
最終形成比較理想的狀態為:F5/LVS<—>Haproxy<—>Squid/Varnish<—>AppServer。
參考文章:http://sudone.com/nginx/nginx_vs_lvs.html
總結
以上是生活随笔為你收集整理的几种网络负载均衡方法比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android配置环境问题
- 下一篇: 张衡的地震仪不起作用的原因