負(fù)載均衡功能的體現(xiàn)一般我們?cè)谟布a(chǎn)品中比較能夠容易了解,比如,路由、交換機(jī)等。那么根據(jù)對(duì)這些硬件產(chǎn)品原有的性能分析,不難了解這方面的知識(shí),F(xiàn)在,我們來說一下三種實(shí)現(xiàn)負(fù)載均衡功能的技術(shù)。
1.反向代理負(fù)載均衡
使用代理服務(wù)器可以將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部的Web服務(wù)器,使用這種加速模式顯然可以提升靜態(tài)網(wǎng)頁(yè)的訪問速度。因此也可以考慮使用這種技術(shù),讓代理服務(wù)器將請(qǐng)求均勻轉(zhuǎn)發(fā)給多臺(tái)內(nèi)部Web服務(wù)器之一上,從而達(dá)到負(fù)載均衡的目的。這種代理方式與普通的代理方式有所不同,標(biāo)準(zhǔn)代理方式是客戶使用代理訪問多個(gè)外部Web服務(wù)器,而這種代理方式是多個(gè)客戶使用它訪問內(nèi)部Web服務(wù)器,因此也被稱為反向代理模式。
實(shí)現(xiàn)這個(gè)反向代理能力并不能算是一個(gè)特別復(fù)雜的任務(wù),但是在負(fù)載均衡功能中要求特別高的效率,這樣實(shí)現(xiàn)起來就不是十分簡(jiǎn)單的了。每針對(duì)一次代理,代理服務(wù)器就必須打開兩個(gè)連接,一個(gè)為對(duì)外的連接,一個(gè)為對(duì)內(nèi)的連接,因此對(duì)于連接請(qǐng)求數(shù)量非常大的時(shí)候,代理服務(wù)器的負(fù)載也就非常之大了,在最后反向代理服務(wù)器會(huì)成為服務(wù)的瓶頸。
例如,使用Apache的mod_rproxy模塊來實(shí)現(xiàn)負(fù)載均衡功能時(shí),提供的并發(fā)連接數(shù)量受Apache本身的并發(fā)連接數(shù)量的限制。一般來講,可以使用它來對(duì)連接數(shù)量不是特別大,但每次連接都需要消耗大量處理資源的站點(diǎn)進(jìn)行負(fù)載均衡,例如搜尋。
使用反向代理的好處是,可以將負(fù)載均衡和代理服務(wù)器的高速緩存技術(shù)結(jié)合在一起,提供有益的性能,具備額外的安全性,外部客戶不能直接訪問真實(shí)的服務(wù)器。并且實(shí)現(xiàn)起來可以實(shí)現(xiàn)較好的負(fù)載均衡策略,將負(fù)載可以非常均衡的分給內(nèi)部服務(wù)器,不會(huì)出現(xiàn)負(fù)載集中到某個(gè)服務(wù)器的偶然現(xiàn)象。
2.基于NAT的負(fù)載均衡
網(wǎng)絡(luò)地址轉(zhuǎn)換為在內(nèi)部地址和外部地址之間進(jìn)行轉(zhuǎn)換,以便具備內(nèi)部地址的計(jì)算機(jī)能訪問外部網(wǎng)絡(luò),而當(dāng)外部網(wǎng)絡(luò)中的計(jì)算機(jī)訪問地址轉(zhuǎn)換網(wǎng)關(guān)擁有的某一外部地址時(shí),地址轉(zhuǎn)換網(wǎng)關(guān)能將其轉(zhuǎn)發(fā)到一個(gè)映射的內(nèi)部地址上。因此如果地址轉(zhuǎn)換網(wǎng)關(guān)能將每個(gè)連接均勻轉(zhuǎn)換為不同的內(nèi)部服務(wù)器地址,此后外部網(wǎng)絡(luò)中的計(jì)算機(jī)就各自與自己轉(zhuǎn)換得到的地址上服務(wù)器進(jìn)行通信,從而達(dá)到負(fù)載分擔(dān)的目的。
地址轉(zhuǎn)換可以通過軟件方式來實(shí)現(xiàn),也可以通過硬件方式來實(shí)現(xiàn)。使用硬件方式進(jìn)行操作一般稱為交換,而當(dāng)交換必須保存TCP連接信息的時(shí)候,這種針對(duì)OSI網(wǎng)絡(luò)層的操作就被稱為第四層交換。支持負(fù)載均衡的網(wǎng)絡(luò)地址轉(zhuǎn)換為第四層交換機(jī)的一種重要功能,由于它基于定制的硬件芯片,因此其性能非常優(yōu)秀,很多交換機(jī)聲稱具備400MB-800MB的第四層交換能力。
使用軟件方式來實(shí)現(xiàn)基于網(wǎng)絡(luò)地址轉(zhuǎn)換的負(fù)載均衡則要實(shí)際的多,除了一些廠商提供的解決方法之外,更有效的方法是使用免費(fèi)的自由軟件來完成這項(xiàng)任務(wù)。其中包括Linux Virtual Server Project中的NAT實(shí)現(xiàn)方式,或者本文作者在FreeBSD下對(duì)natd的修訂版本。一般來講,使用這種軟件方式來實(shí)現(xiàn)地址轉(zhuǎn)換,中心負(fù)載均衡器存在帶寬限制,在100MB的快速以太網(wǎng)條件下,能得到最快達(dá)80MB的帶寬,然而在實(shí)際應(yīng)用中,可能只有40MB-60MB的可用帶寬。
3.擴(kuò)展的負(fù)載均衡
使用網(wǎng)絡(luò)地址轉(zhuǎn)換來實(shí)現(xiàn)負(fù)載分擔(dān),毫無疑問所有的網(wǎng)絡(luò)連接都必須通過中心負(fù)載均衡器,那么如果負(fù)載特別大,以至于后臺(tái)的服務(wù)器數(shù)量不再在是幾臺(tái)、十幾臺(tái),而是上百臺(tái)甚至更多,即便是使用性能優(yōu)秀的硬件交換機(jī)也會(huì)遇到瓶頸。此時(shí)問題將轉(zhuǎn)變?yōu),如何將那么多臺(tái)服務(wù)器分布到各個(gè)互聯(lián)網(wǎng)的多個(gè)位置,分散網(wǎng)絡(luò)負(fù)擔(dān)。當(dāng)然這可以通過綜合使用DNS和NAT兩種方法來實(shí)現(xiàn),然而更好的方式是使用一種半中心的負(fù)載均衡功能。
在這種半中心的負(fù)載均衡功能下,即當(dāng)客戶請(qǐng)求發(fā)送給負(fù)載均衡器的時(shí)候,中心負(fù)載均衡器將請(qǐng)求打包并發(fā)送給某個(gè)服務(wù)器,而服務(wù)器的回應(yīng)請(qǐng)求不再返回給中心負(fù)載均衡器,而是直接返回給客戶,因此中心負(fù)載均衡器只負(fù)責(zé)接受并轉(zhuǎn)發(fā)請(qǐng)求,其網(wǎng)絡(luò)負(fù)擔(dān)就較小了。
同樣,這種方式的硬件實(shí)現(xiàn)方式也非常昂貴,但是會(huì)根據(jù)廠商的不同,具備不同的特殊功能,例如對(duì)SSL的支持等。
由于這種方式比較復(fù)雜,因此實(shí)現(xiàn)起來比較困難,它的起點(diǎn)也很高,當(dāng)前情況下網(wǎng)站并不需要這么大的處理能力。
相關(guān)推薦:推薦:2010年計(jì)算機(jī)軟件水平考試必備完美攻略北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |