Web基礎架構:負載均衡

需求描述

        1.可伸縮性:當服務的負載增長時,系統能被擴展來滿足需求,且不降低服務質量。

        2.高可用性:儘管部分硬件和軟件會發生故障,整個系統的服務必須是7*24可用。

        3.可管理性:整個系統可能在物理上很大,但應該容易管理。

        4.價格有效性:整個系統實現應該是經濟的、易支付的。

 集羣系統在成本消息上的高度可擴展性正是實現需求的有效思路。

負載均衡是由多臺服務器以對稱的方式組成一個服務器集合,每臺服務器都具有等價的地位,都可以單獨對外提供服務而無須其他服務器的輔助。

負載均衡設備的任務就是作爲應用服務器流量的入口,挑選最合適的一臺服務器,將客戶端的請求轉發給它處理,實現客戶端到真實服務端的透明轉發。在客戶端看來,就好像它面對的是一個擁有近乎無限能力的服務器,而本質上,真正提供服務的是後端的集羣。


負載均衡的分類

負載均衡可以使用硬件設備實現,也可以使用軟件來實現。

常見的硬件有比較昂貴的F5Array等商用的負載均衡器,它的優點就是有專業的維護團隊來對這些服務進行維護、缺點就是貴。

軟件的費用比較低廉,一般對軟件負載均衡的使用是隨着網站規模的不同來使用的。具體的應用需求還得具體分析,如果是中小型的Web應用,比如日PV(page view)小於1000萬,用Nginx就完全可以了;如果機器少,可以用DNS輪詢,LVS所耗費的機器還是比較多的;大型網站或重要的服務,可以考慮用LVS

Nginx

http://network.51cto.com/art/201005/198212_all.htm

1.Nginx對網絡的依賴非常小,理論上能ping通就就能進行負載功能,這個也是它的優勢所在;

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

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

4.Nginx可以通過端口檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼、超時等等,並且會把返回錯誤的請求重新提交到另一個節點,不過其中缺點就是不支持url來檢測;

5.實現了可彈性化的架構,在壓力增大時可以臨時添加tomcat服務器到架構中。

Nginx負載均衡設置:

IP地址

Nginx(主負載均衡器)192.168.1.106

Nginx(從負載均衡器)192.168.1.107

VIP地址:192.168.1.108

Tomcat1IP192.168.1.102

Tomcat2IP192.168.1.103

Tomcat3IP192.168.1.105

①首先分別在3tomcat主機上佈置java環境,安裝tomcat

②分別在二臺nginx負載均衡器上安裝nginx及配置。

③在二臺Nginx機上安裝及配置keepalived,做雙機互備。

 

keepalived的作用是檢測服務器的狀態,如果有一臺web服務器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常後Keepalived自動將服務器加入到服務器羣中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的服務器。

 

LVS(Linux Virtual Server)

http://network.51cto.com/art/201110/298992.htm

LVS採用IP負載均衡技術和基於內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。整個服務器集羣的結構對客戶是透明的,而且無需修改客戶端和服務器端的程序。

特點

1.負載能力強,在負載均衡軟件裏性能最強;

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

3.工作穩定,自身有完整的雙機熱備方案,如LVS+KeepalivedLVS+Heartbeat,不過我們在項目實施中用得最多的還是LVS/DR+Keepalived

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

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

6.如果是網站應用比較龐大的話,實施LVS/DR+Keepalived起來就比較複雜了,特別後面有Windows Server應用的機器的話,如果實施及配置還有維護過程就比較複雜了,相對而言,Nginx/HAProxy+Keepalived就簡單多了。

LVS集羣結構

LVS主要組成部分:

1.負載調度器,它是整個集羣對外面的前端機,負責將客戶的請求發送到一組服務器上執行,而客戶認爲服務是來自一個IP地址(我們可稱之爲虛擬IP地址)上的。

2.服務器池,是一組真正執行客戶請求的服務器,執行的服務器一般有WEBMAILFTPDNS等。

3.共享存儲,它爲服務器池提供一個共享的存儲區,這樣易使得服務器池擁有相同的內容,提供相同的服務。

LVS負載均衡方式:

1.Virtual Server via Network Address Translation NAT(VS/NAT)

2.Virtual Server via IP Tunneling(VS/TUN)

3.Virtual Server via Direct Routing(VS/DR)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章