聊聊云計算:為什么構(gòu)建網(wǎng)站時常會用到負(fù)載均衡

瘋子程序員
硬件負(fù)載均衡有很多設(shè)備商可以提供解決方案,比如NetScaler、F5、Array Networks等。硬件負(fù)載均衡的優(yōu)勢比較明顯:有專業(yè)團(tuán)隊進(jìn)行維護(hù)、性能好、且穩(wěn)定可靠。

負(fù)載均衡可以將客戶端請求分?jǐn)偟蕉鄠€操作單元上進(jìn)行處理。

硬件負(fù)載均衡

負(fù)載均衡有很多種不同的實現(xiàn)方式,總的來說,可以分為硬件負(fù)載均衡與軟件負(fù)載均衡兩大類。

硬件負(fù)載均衡有很多設(shè)備商可以提供解決方案,比如NetScaler、F5、Array Networks等。硬件負(fù)載均衡的優(yōu)勢比較明顯:有專業(yè)團(tuán)隊進(jìn)行維護(hù)、性能好、且穩(wěn)定可靠。

F5負(fù)載均衡器

但硬件負(fù)載均衡解決方案也有缺點,比如設(shè)備和服務(wù)費用昂貴,靈活性差,功能和容量都難以擴(kuò)展。軟件負(fù)載均衡相對來說,靈活性強(qiáng),擴(kuò)展起來更容易,所以軟件負(fù)載均衡解決方案越來越受到青睞。

DNS負(fù)載均衡

軟件負(fù)載均衡最早通過DNS來實現(xiàn),即一個域名對應(yīng)多個IP地址。在應(yīng)答DNS查詢時,DNS服務(wù)器對每個查詢將以DNS文件中主機(jī)記錄的IP地址按順序返回不同的解析結(jié)果,將客戶端的訪問引導(dǎo)到不同的機(jī)器上去,使得不同的客戶端訪問不同的服務(wù)器,從而達(dá)到負(fù)載均衡的目的。

DNS負(fù)載均衡的解決方案原理比較簡單,不過缺點也比較明顯:

第一,不能夠按照Web服務(wù)器的處理能力分配負(fù)載;

第二,DNS負(fù)載均衡技術(shù)沒有考慮容錯,即使某個服務(wù)器不可用,DNS仍然會把請求轉(zhuǎn)發(fā)過去;

第三,一旦發(fā)現(xiàn)某個服務(wù)器出現(xiàn)故障,即使及時修改了DNS設(shè)置,但還是要等DNS刷新時間到了才能生效。

開源軟件解決方案

后來出現(xiàn)了開源軟件負(fù)載均衡的解決方案,最主流的就是LVS和Nginx。基于開源軟件的負(fù)載均衡打破了硬件LB的壟斷,降低了負(fù)載均衡的實施成本。

(1)LVS = Linux Virtual Server

LVS虛擬服務(wù)器,在1998年5月由章文嵩博士成立,是中國國內(nèi)最早出現(xiàn)的自由軟件項目之一。

LVS是把負(fù)載均衡的功能做到了Linux內(nèi)核里面。LVS集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù),將一組服務(wù)器構(gòu)成一個高性能的、高可用的虛擬服務(wù)器。

整個服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,客戶訪問集群系統(tǒng)提供的網(wǎng)絡(luò)服務(wù)就像訪問一臺高性能、高可用的服務(wù)器一樣,而且無需修改客戶端和服務(wù)器端的程序。

(2)Nginx

Nginx是一個輕量級的Web服務(wù)器,同時也是一個反向代理服務(wù)器,可以利用其反向代理的功能做負(fù)載均衡。Nginx與LVS相比主要有以下幾點不同:

與LVS在層四進(jìn)行負(fù)載均衡不同,Nginx是在層7進(jìn)行,可以針對Http應(yīng)用進(jìn)行分流;

轉(zhuǎn)發(fā)策略也更靈活,比如可以針對域名或目錄結(jié)構(gòu)進(jìn)行轉(zhuǎn)發(fā);

Nginx對網(wǎng)絡(luò)的依賴比較小,理論上只要Ping得通,網(wǎng)頁訪問正常就能連通,而LVS比較依賴網(wǎng)絡(luò)環(huán)境。

總的來說,Nginx的應(yīng)用場合要更多一些,LVS則更適合節(jié)點比較多的大型系統(tǒng)。

基于云的負(fù)載均衡(Cloud Load Balance)

除了在云主機(jī)上自己利用LVS或Nginx搭建負(fù)載均衡服務(wù)器,阿里云、騰訊云等云計算服務(wù)商,均提供了專門的負(fù)載均衡服務(wù),配置容易。這些服務(wù)商的負(fù)載均衡解決方案,往往是結(jié)合了層7與層4的綜合負(fù)載均衡方案,而且還需要考慮VPC網(wǎng)絡(luò)與物理網(wǎng)絡(luò)的不同情況(關(guān)于VPC的概念,可以參考之前的文章,《聊聊云計算:VPC與VPN有什么關(guān)系》)。具體實現(xiàn)方案比較復(fù)雜,這里就不過多介紹了,反正會用就行。

基于負(fù)載均衡實現(xiàn)的典型的云服務(wù)架構(gòu)

上圖就是一個基于負(fù)載均衡的典型的云服務(wù)架構(gòu)。在我們搭建互聯(lián)網(wǎng)應(yīng)用時,可能需要考慮服務(wù)器的承載能力,或者需要保障服務(wù)器可用性,避免出現(xiàn)單點故障,使用負(fù)載均衡就是一個基本操作,掌握了LB,我們的服務(wù)就更加穩(wěn)定了。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論