集群和負(fù)載均衡的相伴發(fā)展論
集群和負(fù)載均衡是個(gè)扯不清的關(guān)系,集群是負(fù)載均衡發(fā)展的根本,負(fù)載均衡是集群發(fā)展的依靠。那么從負(fù)載均衡的角度看集群現(xiàn)在的表現(xiàn)又是如何呢?隨著科技的不斷出新,我們?cè)絹?lái)越多的技術(shù)已經(jīng)不能分開(kāi)來(lái)談,現(xiàn)在我們就將兩者結(jié)合,一起分析它們的發(fā)展現(xiàn)狀和方向。
負(fù)載均衡
負(fù)載均衡是提高系統(tǒng)性能的一種前沿技術(shù)。還是沿用前面的例子,一臺(tái)IA服務(wù)器的處理能力是每秒幾萬(wàn)個(gè),顯然無(wú)法在一秒鐘內(nèi)處理幾十萬(wàn)個(gè)請(qǐng)求,但如果我們能夠有10臺(tái)這樣的服務(wù)器組成一個(gè)系統(tǒng),如果有辦法將所有的請(qǐng)求平均分配到所有的服務(wù)器,那么這個(gè)系統(tǒng)就擁有了每秒處理幾十萬(wàn)個(gè)請(qǐng)求的能力。這就是負(fù)載均衡的基本思想。
實(shí)際上,目前市場(chǎng)上有多家廠商的負(fù)載均衡產(chǎn)品。由于其應(yīng)用的主要技術(shù)的不同,也就有著不同的特點(diǎn)和不同的性能。
1.輪詢DNS負(fù)載均衡
輪詢DNS方案可以說(shuō)是技術(shù)上最簡(jiǎn)單也最直觀的一種方案。當(dāng)然,這種方案只能夠?qū)崿F(xiàn)負(fù)載均衡的功能,卻無(wú)法實(shí)現(xiàn)對(duì)高可用性的保證。它的原理是在DNS服務(wù)器中設(shè)定對(duì)同一個(gè)Internet主機(jī)名的多個(gè)IP地址的映射。這樣,在DNS收到查詢主機(jī)名的請(qǐng)求時(shí),會(huì)循環(huán)的將所有對(duì)應(yīng)的IP地址逐個(gè)返回。這樣,就能夠?qū)⒉煌目蛻舳诉B接定位到不同的IP主機(jī)上,也就能夠?qū)崿F(xiàn)比較簡(jiǎn)單的負(fù)載均衡功能。但是,這種方案有兩個(gè)比較致命的缺點(diǎn):
◆只能夠?qū)崿F(xiàn)對(duì)基于Internet主機(jī)名請(qǐng)求的負(fù)載均衡,如果是直接基于IP地址的請(qǐng)求則無(wú)能為力。
◆在集群內(nèi)有節(jié)點(diǎn)發(fā)生故障的情況下,DNS服務(wù)器仍會(huì)將這個(gè)節(jié)點(diǎn)的IP地址返回給查詢方,也就仍會(huì)不斷的有客戶請(qǐng)求試圖與已故障的節(jié)電建立連接。這種情況下,即使你手工修改DNS服務(wù)器的對(duì)應(yīng)設(shè)置,將故障的IP地址刪除,由于Internet上所有的DNS服務(wù)器都有緩存機(jī)制,仍會(huì)有成千上萬(wàn)的客戶端連接不到集群,除非等到所有的DNS緩存都超時(shí)。
2.硬件負(fù)載均衡解決方案
有些廠商提供對(duì)負(fù)載均衡的硬件解決方案,制造出帶有NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)功能的高檔路由器或交換機(jī)來(lái)實(shí)現(xiàn)負(fù)載均衡功能。NAT本身的原理就是實(shí)現(xiàn)多個(gè)私有IP地址對(duì)單個(gè)公共IP地址的轉(zhuǎn)換。代表產(chǎn)品是Cicso公司和Alteon公司的某些高檔硬件交換機(jī)系列。這種方案有如下缺點(diǎn):
◆由于采用了特殊的硬件,使得整個(gè)系統(tǒng)中存在非工業(yè)標(biāo)準(zhǔn)部件,極大的影響系統(tǒng)的擴(kuò)充和維護(hù)、升級(jí)工作。
◆價(jià)格極其昂貴,和軟件的解決方案根本是數(shù)量級(jí)上的差別。
◆一般只能實(shí)現(xiàn)對(duì)節(jié)點(diǎn)系統(tǒng)一級(jí)的狀態(tài)檢查,無(wú)法細(xì)化到服務(wù)一級(jí)的檢查。
◆由于采用NAT機(jī)制,集群管理節(jié)點(diǎn)本身要完成的工作量很大,很容易成為整個(gè)系統(tǒng)的瓶頸。
◆此特殊硬件本身就是單一故障點(diǎn)。
◆實(shí)現(xiàn)異地節(jié)點(diǎn)的集群非常困難。#p#
3.協(xié)商式處理(并行過(guò)濾)和負(fù)載均衡
這種方案的原理是客戶請(qǐng)求會(huì)同時(shí)被所有的節(jié)點(diǎn)所接收,然后所有節(jié)點(diǎn)按照一定的規(guī)則協(xié)商決定由哪個(gè)節(jié)點(diǎn)處理這個(gè)請(qǐng)求。此種方案中比較顯著的特點(diǎn)就是整個(gè)集群中沒(méi)有顯著的管理節(jié)點(diǎn),所有決定由全體工作節(jié)點(diǎn)共同協(xié)商作出。代表產(chǎn)品是Microsoft公司的Microsoft Load Balancing Service這種方案的特點(diǎn)是:
◆由于各節(jié)點(diǎn)間要進(jìn)行的通訊量太大,加重了網(wǎng)絡(luò)的負(fù)擔(dān),一般需要增加節(jié)點(diǎn)通訊的專用網(wǎng)絡(luò),也就加大了安裝和維護(hù)的難度和費(fèi)用。
◆由于每個(gè)節(jié)點(diǎn)都要接收所有的客戶請(qǐng)求并進(jìn)行分析,極大的加大了網(wǎng)絡(luò)驅(qū)動(dòng)層的負(fù)擔(dān),也就減低了節(jié)點(diǎn)本身的工作效率,同時(shí)也時(shí)網(wǎng)絡(luò)驅(qū)動(dòng)層很容易成為節(jié)點(diǎn)系統(tǒng)的瓶頸。
◆由于要更改網(wǎng)絡(luò)驅(qū)動(dòng)層的程序,所以并不是一個(gè)通用的方案,只能夠?qū)崿F(xiàn)對(duì)特殊平臺(tái)的支持。
◆在小量節(jié)點(diǎn)的情況下協(xié)商的效率還可以接受,一旦節(jié)點(diǎn)數(shù)量增加,通訊和協(xié)商將變得異常復(fù)雜和低效,整個(gè)系統(tǒng)的性能會(huì)有非線性的大幅度下降。所以此類方案,一般在理論上也只允許最多十幾個(gè)的節(jié)點(diǎn)。
◆無(wú)法實(shí)現(xiàn)異地節(jié)點(diǎn)的集群。
◆由于集群內(nèi)沒(méi)有統(tǒng)一的管理者,所以可能出現(xiàn)混亂的異常現(xiàn)象。
4.流量分發(fā)和負(fù)載均衡
流量分發(fā)的原理是所有的用戶請(qǐng)求首先到達(dá)集群的管理節(jié)點(diǎn),管理節(jié)點(diǎn)可以根據(jù)所有服務(wù)節(jié)點(diǎn)的處理能力和現(xiàn)狀來(lái)決定將這個(gè)請(qǐng)求分發(fā)給某個(gè)服務(wù)節(jié)點(diǎn)。當(dāng)某個(gè)服務(wù)節(jié)點(diǎn)由于硬件或軟件原因故障時(shí),管理節(jié)點(diǎn)能夠自動(dòng)檢測(cè)到并停止向這個(gè)服務(wù)節(jié)點(diǎn)分發(fā)流量。這樣,既通過(guò)將流量分擔(dān)而增加了整個(gè)系統(tǒng)的性能和處理能力,又可以很好的提高系統(tǒng)的可用性。
通過(guò)將管理節(jié)點(diǎn)本身做一個(gè)子集群可以消除由于管理節(jié)點(diǎn)自身的單一性帶來(lái)的單一故障點(diǎn)。有些傳統(tǒng)技術(shù)人員認(rèn)為,因?yàn)樗械目蛻袅髁慷紝⑼ㄟ^(guò)管理節(jié)點(diǎn),所以管理節(jié)點(diǎn)很容易成為整個(gè)系統(tǒng)的瓶頸。但TurboCluster Server通過(guò)先進(jìn)的直接路由或IP隧道轉(zhuǎn)發(fā)機(jī)制巧妙的解決了問(wèn)題。使得所有對(duì)客戶響應(yīng)的流量都由服務(wù)節(jié)點(diǎn)直接返回給客戶端,而并不需要再次通過(guò)管理節(jié)點(diǎn)。眾所周知,對(duì)于服務(wù)提供商而言,進(jìn)入的流量要遠(yuǎn)遠(yuǎn)小于流出的流量,所以管理節(jié)點(diǎn)本身將不再是瓶頸。
流量分發(fā)的具體實(shí)現(xiàn)方法有直接路由、IP隧道和網(wǎng)絡(luò)地址轉(zhuǎn)換三種方法。TurboCluster Server目前支持效率最高的前兩種。由于這種先進(jìn)的結(jié)構(gòu)和技術(shù),使得TurboCluster Server集群內(nèi)的服務(wù)節(jié)點(diǎn)數(shù)并沒(méi)有上限,而且對(duì)大量節(jié)點(diǎn)的協(xié)同工作的效率也能夠非常好的保證。
結(jié)束語(yǔ)
集群技術(shù)已經(jīng)發(fā)展了多年,其中的分支也非常多。目前集群技術(shù)正逐漸走向分層結(jié)構(gòu),以后也肯定會(huì)有專門(mén)用戶前端、后端的集群產(chǎn)品出現(xiàn)。















 
 
 
 
 
 
 