<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    coolfiry

    認(rèn)認(rèn)真真做人,兢兢業(yè)業(yè)做事!
    posts - 39, comments - 17, trackbacks - 0, articles - 0

    Internet的快速增長(zhǎng)使多媒體網(wǎng)絡(luò)服務(wù)器,特別是Web服務(wù)器,面對(duì)的訪(fǎng)問(wèn)者數(shù)量快速增加,網(wǎng)絡(luò)服務(wù)器需要具備提供大量并發(fā)訪(fǎng)問(wèn)服務(wù)的能力。 例如Yahoo每天會(huì)收到數(shù)百萬(wàn)次的訪(fǎng)問(wèn)請(qǐng)求,因此對(duì)于提供大負(fù)載Web服務(wù)的服務(wù)器來(lái)講,CPU、I/O處理能力很快會(huì)成為瓶頸。

    簡(jiǎn)單的 提高硬件性能并不能真正解決這個(gè)問(wèn)題,因?yàn)閱闻_(tái)服務(wù)器的性能總是有限的,一般來(lái)講,一臺(tái)PC服務(wù)器所能提供的并發(fā)訪(fǎng)問(wèn)處理能力大約為1000個(gè),更為高檔 的專(zhuān)用服務(wù)器能夠支持3000-5000個(gè)并發(fā)訪(fǎng)問(wèn),這樣的能力還是無(wú)法滿(mǎn)足負(fù)載較大的網(wǎng)站的要求。尤其是網(wǎng)絡(luò)請(qǐng)求具有突發(fā)性,當(dāng)某些重大事件發(fā)生時(shí),網(wǎng) 絡(luò)訪(fǎng)問(wèn)就會(huì)急劇上升,從而造成網(wǎng)絡(luò)瓶頸,例如在網(wǎng)上發(fā)布的克林頓彈劾書(shū)就是很明顯的例子。必須采用多臺(tái)服務(wù)器提供網(wǎng)絡(luò)服務(wù),并將網(wǎng)絡(luò)請(qǐng)求分配給這些服務(wù)器 分擔(dān),才能提供處理大量并發(fā)服務(wù)的能力。

    當(dāng)使用多臺(tái)服務(wù)器來(lái)分擔(dān)負(fù)載的時(shí)候,最簡(jiǎn)單的辦法是將不同的服務(wù)器用在不同的方面。 按提供的內(nèi)容進(jìn)行分割時(shí),可以將一臺(tái)服務(wù)器用于提供新聞頁(yè)面,而另一臺(tái)用于提供游戲頁(yè)面;或者可以按服務(wù)器的功能進(jìn)行分割,將一臺(tái)服務(wù)器用于提供靜態(tài)頁(yè)面 訪(fǎng)問(wèn),而另一些用于提供CGI等需要大量消耗資源的動(dòng)態(tài)頁(yè)面訪(fǎng)問(wèn)。然而由于網(wǎng)絡(luò)訪(fǎng)問(wèn)的突發(fā)性,使得很難確定那些頁(yè)面造成的負(fù)載太大,如果將服務(wù)的頁(yè)面分割 的過(guò)細(xì)就會(huì)造成很大浪費(fèi)。事實(shí)上造成負(fù)載過(guò)大的頁(yè)面常常是在變化中的,如果要經(jīng)常按照負(fù)載變化來(lái)調(diào)整頁(yè)面所在的服務(wù)器,那么勢(shì)必對(duì)管理和維護(hù)造成極大的問(wèn) 題。因此這種分割方法只能是大方向的調(diào)整,對(duì)于大負(fù)載的網(wǎng)站,根本的解決辦法還需要應(yīng)用負(fù)載均衡技術(shù)。

    負(fù)載均衡的思路下多臺(tái) 服務(wù)器為對(duì)稱(chēng)方式,每臺(tái)服務(wù)器都具備等價(jià)的地位,都可以單獨(dú)對(duì)外提供服務(wù)而無(wú)須其他服務(wù)器的輔助。然后通過(guò)某種負(fù)載分擔(dān)技術(shù),將外部發(fā)送來(lái)的請(qǐng)求均勻分配 到對(duì)稱(chēng)結(jié)構(gòu)中的某一臺(tái)服務(wù)器上,而接收到請(qǐng)求的服務(wù)器都獨(dú)立回應(yīng)客戶(hù)機(jī)的請(qǐng)求。由于建立內(nèi)容完全一致的Web服務(wù)器并不復(fù)雜,可以使用服務(wù)器同步更新或者 共享存儲(chǔ)空間等方法來(lái)完成,因此負(fù)載均衡技術(shù)就成為建立一個(gè)高負(fù)載Web站點(diǎn)的關(guān)鍵性技術(shù)。

    1. 基于特定服務(wù)器軟件的負(fù)載均衡

      很 多網(wǎng)絡(luò)協(xié)議都支持“重定向”功能,例如在HTTP協(xié)議中支持Location指令,接收到這個(gè)指令的瀏覽器將自動(dòng)重定向到Location指明的另一個(gè) URL上。由于發(fā)送Location指令比起執(zhí)行服務(wù)請(qǐng)求,對(duì)Web服務(wù)器的負(fù)載要小的多,因此可以根據(jù)這個(gè)功能來(lái)設(shè)計(jì)一種負(fù)載均衡的服務(wù)器。任何時(shí)候 Web服務(wù)器認(rèn)為自己負(fù)載較大的時(shí)候,它就不再直接發(fā)送回瀏覽器請(qǐng)求的網(wǎng)頁(yè),而是送回一個(gè)Locaction指令,讓瀏覽器去服務(wù)器集群中的其他服務(wù)器上 獲得所需要的網(wǎng)頁(yè)。

      在這種方式下,服務(wù)器本身必須支持這種功能,然而具體實(shí)現(xiàn)起來(lái)卻有很多困難,例如一臺(tái)服務(wù)器如何能保證它重定向過(guò)的服務(wù) 器是比較空閑的,并且不會(huì)再次發(fā)送Location指令?Location指令和瀏覽器都沒(méi)有這方面的支持能力,這樣很容易在瀏覽器上形成一種死循環(huán)。因 此這種方式實(shí)際應(yīng)用當(dāng)中并不多見(jiàn),使用這種方式實(shí)現(xiàn)的服務(wù)器集群軟件也較少。有些特定情況下可以使用CGI(包括使用FastCGI或mod_perl擴(kuò) 展來(lái)改善性能)來(lái)模擬這種方式去分擔(dān)負(fù)載,而Web服務(wù)器仍然保持簡(jiǎn)潔、高效的特性,此時(shí)避免Location循環(huán)的任務(wù)將由用戶(hù)的CGI程序來(lái)承擔(dān)。

    2. 基于DNS的負(fù)載均衡

      由 于基于服務(wù)器軟件的負(fù)載均衡需要改動(dòng)軟件,因此常常是得不償失,負(fù)載均衡最好是在服務(wù)器軟件之外來(lái)完成,這樣才能利用現(xiàn)有服務(wù)器軟件的種種優(yōu)勢(shì)。最早的負(fù) 載均衡技術(shù)是通過(guò)DNS服務(wù)中的隨機(jī)名字解析來(lái)實(shí)現(xiàn)的,在DNS服務(wù)器中,可以為多個(gè)不同的地址配置同一個(gè)名字,而最終查詢(xún)這個(gè)名字的客戶(hù)機(jī)將在解析這個(gè) 名字時(shí)得到其中的一個(gè)地址。因此,對(duì)于同一個(gè)名字,不同的客戶(hù)機(jī)會(huì)得到不同的地址,他們也就訪(fǎng)問(wèn)不同地址上的Web服務(wù)器,從而達(dá)到負(fù)載均衡的目的。

      例如如果希望使用三個(gè)Web服務(wù)器來(lái)回應(yīng)對(duì)www.exampleorg.org.cn的HTTP請(qǐng)求,就可以設(shè)置該域的DNS服務(wù)器中關(guān)于該域的數(shù)據(jù)包括有與下面例子類(lèi)似的結(jié)果:

      www1		IN		A 		192.168.1.1
      www2		IN		A 		192.168.1.2
      www3		IN		A 		192.168.1.3
      www		IN		CNAME		www1
      www		IN		CNAME		www2
      www		IN		CNAME		www3

      此后外部的客戶(hù)機(jī)就可能隨機(jī)的得到對(duì)應(yīng)www的不同地址,那么隨后的HTTP請(qǐng)求也就發(fā)送給不同地址了。

      DNS 負(fù)載均衡的優(yōu)點(diǎn)是簡(jiǎn)單、易行,并且服務(wù)器可以位于互聯(lián)網(wǎng)的任意位置上,當(dāng)前使用在包括Yahoo在內(nèi)的Web站點(diǎn)上。然而它也存在不少缺點(diǎn),一個(gè)缺點(diǎn)是為 了保證DNS數(shù)據(jù)及時(shí)更新,一般都要將DNS的刷新時(shí)間設(shè)置的較小,但太小就會(huì)造成太大的額外網(wǎng)絡(luò)流量,并且更改了DNS數(shù)據(jù)之后也不能立即生效;第二點(diǎn) 是DNS負(fù)載均衡無(wú)法得知服務(wù)器之間的差異,它不能做到為性能較好的服務(wù)器多分配請(qǐng)求,也不能了解到服務(wù)器的當(dāng)前狀態(tài),甚至?xí)霈F(xiàn)客戶(hù)請(qǐng)求集中在某一臺(tái)服 務(wù)器上的偶然情況。

    3. 反向代理負(fù)載均衡

      使用代理服務(wù)器可以將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部的Web服務(wù)器,使用這種加速 模式顯然可以提升靜態(tài)網(wǎng)頁(yè)的訪(fǎng)問(wèn)速度。因此也可以考慮使用這種技術(shù),讓代理服務(wù)器將請(qǐng)求均勻轉(zhuǎn)發(fā)給多臺(tái)內(nèi)部Web服務(wù)器之一上,從而達(dá)到負(fù)載均衡的目的。 這種代理方式與普通的代理方式有所不同,標(biāo)準(zhǔn)代理方式是客戶(hù)使用代理訪(fǎng)問(wèn)多個(gè)外部Web服務(wù)器,而這種代理方式是多個(gè)客戶(hù)使用它訪(fǎng)問(wèn)內(nèi)部Web服務(wù)器,因 此也被稱(chēng)為反向代理模式。

      實(shí)現(xiàn)這個(gè)反向代理能力并不能算是一個(gè)特別復(fù)雜的任務(wù),但是在負(fù)載均衡中要求特別高的效率,這樣實(shí)現(xiàn)起來(lái)就不是十分 簡(jiǎn)單的了。每針對(duì)一次代理,代理服務(wù)器就必須打開(kāi)兩個(gè)連接,一個(gè)為對(duì)外的連接,一個(gè)為對(duì)內(nèi)的連接,因此對(duì)于連接請(qǐng)求數(shù)量非常大的時(shí)候,代理服務(wù)器的負(fù)載也 就非常之大了,在最后反向代理服務(wù)器會(huì)成為服務(wù)的瓶頸。例如,使用Apache的mod_rproxy模塊來(lái)實(shí)現(xiàn)負(fù)載均衡功能時(shí),提供的并發(fā)連接數(shù)量受 Apache本身的并發(fā)連接數(shù)量的限制。一般來(lái)講,可以使用它來(lái)對(duì)連接數(shù)量不是特別大,但每次連接都需要消耗大量處理資源的站點(diǎn)進(jìn)行負(fù)載均衡,例如搜尋。

      使 用反向代理的好處是,可以將負(fù)載均衡和代理服務(wù)器的高速緩存技術(shù)結(jié)合在一起,提供有益的性能,具備額外的安全性,外部客戶(hù)不能直接訪(fǎng)問(wèn)真實(shí)的服務(wù)器。并且 實(shí)現(xiàn)起來(lái)可以實(shí)現(xiàn)較好的負(fù)載均衡策略,將負(fù)載可以非常均衡的分給內(nèi)部服務(wù)器,不會(huì)出現(xiàn)負(fù)載集中到某個(gè)服務(wù)器的偶然現(xiàn)象。

    4. 基于NAT的負(fù)載均衡技術(shù)

      網(wǎng) 絡(luò)地址轉(zhuǎn)換為在內(nèi)部地址和外部地址之間進(jìn)行轉(zhuǎn)換,以便具備內(nèi)部地址的計(jì)算機(jī)能訪(fǎng)問(wèn)外部網(wǎng)絡(luò),而當(dāng)外部網(wǎng)絡(luò)中的計(jì)算機(jī)訪(fǎng)問(wèn)地址轉(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)換可以通過(guò)軟件方式來(lái)實(shí)現(xiàn),也可以通過(guò)硬件方式來(lái)實(shí)現(xiàn)。使用硬件方式進(jìn)行操作一般稱(chēng)為交換,而當(dāng)交換必須保存TCP連接信息的時(shí)候,這種針對(duì)OSI網(wǎng) 絡(luò)層的操作就被稱(chēng)為第四層交換。支持負(fù)載均衡的網(wǎng)絡(luò)地址轉(zhuǎn)換為第四層交換機(jī)的一種重要功能,由于它基于定制的硬件芯片,因此其性能非常優(yōu)秀,很多交換機(jī)聲 稱(chēng)具備400MB-800MB的第四層交換能力,然而也有一些資料表明,在如此快的速度下,大部分交換機(jī)就不再具備第四層交換能力了,而僅僅支持第三層甚 至第二層交換。

      然而對(duì)于大部分站點(diǎn)來(lái)講,當(dāng)前負(fù)載均衡主要是解決Web服務(wù)器處理能力瓶頸的,而非網(wǎng)絡(luò)傳輸能力,很多站點(diǎn)的互聯(lián)網(wǎng)連接帶寬總共也不過(guò)10MB,只有極少的站點(diǎn)能夠擁有較高速的網(wǎng)絡(luò)連接,因此一般沒(méi)有必要使用這些負(fù)載均衡器這樣的昂貴設(shè)備。

      使 用軟件方式來(lái)實(shí)現(xiàn)基于網(wǎng)絡(luò)地址轉(zhuǎn)換的負(fù)載均衡則要實(shí)際的多,除了一些廠(chǎng)商提供的解決方法之外,更有效的方法是使用免費(fèi)的自由軟件來(lái)完成這項(xiàng)任務(wù)。其中包括 Linux Virtual Server Project中的NAT實(shí)現(xiàn)方式,或者本文作者在FreeBSD下對(duì)natd的修訂版本。一般來(lái)講,使用這種軟件方式來(lái)實(shí)現(xiàn)地址轉(zhuǎn)換,中心負(fù)載均衡器存 在帶寬限制,在100MB的快速以太網(wǎng)條件下,能得到最快達(dá)80MB的帶寬,然而在實(shí)際應(yīng)用中,可能只有40MB-60MB的可用帶寬。

    5. 擴(kuò)展的負(fù)載均衡技術(shù)

    上 面使用網(wǎng)絡(luò)地址轉(zhuǎn)換來(lái)實(shí)現(xiàn)負(fù)載分擔(dān),毫無(wú)疑問(wèn)所有的網(wǎng)絡(luò)連接都必須通過(guò)中心負(fù)載均衡器,那么如果負(fù)載特別大,以至于后臺(tái)的服務(wù)器數(shù)量不再在是幾臺(tái)、十幾 臺(tái),而是上百臺(tái)甚至更多,即便是使用性能優(yōu)秀的硬件交換機(jī)也回遇到瓶頸。此時(shí)問(wèn)題將轉(zhuǎn)變?yōu)椋绾螌⒛敲炊嗯_(tái)服務(wù)器分布到各個(gè)互聯(lián)網(wǎng)的多個(gè)位置,分散網(wǎng)絡(luò)負(fù) 擔(dān)。當(dāng)然這可以通過(guò)綜合使用DNS和NAT兩種方法來(lái)實(shí)現(xiàn),然而更好的方式是使用一種半中心的負(fù)載均衡方式。

    在這種半中心的負(fù)載均衡方式下,即當(dāng)客戶(hù)請(qǐng)求發(fā)送給負(fù)載均衡器的時(shí)候,中心負(fù)載均衡器將請(qǐng)求打包并發(fā)送給某個(gè)服務(wù)器,而服務(wù)器的回應(yīng)請(qǐng)求不再返回給中心負(fù)載均衡器,而是直接返回給客戶(hù),因此中心負(fù)載均衡器只負(fù)責(zé)接受并轉(zhuǎn)發(fā)請(qǐng)求,其網(wǎng)絡(luò)負(fù)擔(dān)就較小了。

    上圖來(lái)自L(fǎng)inux Virtual Server Project,為他們使用IP隧道實(shí)現(xiàn)的這種負(fù)載分擔(dān)能力的請(qǐng)求/回應(yīng)過(guò)程,此時(shí)每個(gè)后臺(tái)服務(wù)器都需要進(jìn)行特別的地址轉(zhuǎn)換,以欺騙瀏覽器客戶(hù),認(rèn)為它的回應(yīng)為正確的回應(yīng)。

    同樣,這種方式的硬件實(shí)現(xiàn)方式也非常昂貴,但是會(huì)根據(jù)廠(chǎng)商的不同,具備不同的特殊功能,例如對(duì)SSL的支持等。

    由于這種方式比較復(fù)雜,因此實(shí)現(xiàn)起來(lái)比較困難,它的起點(diǎn)也很高,當(dāng)前情況下網(wǎng)站并不需要這么大的處理能力。

    比 較上面的負(fù)載均衡方式,DNS最容易,也最常用,能夠滿(mǎn)足一般的需求。但如果需要進(jìn)一步的管理和控制,可以選用反向代理方式或NAT方式,這兩種之間進(jìn)行 選擇主要依賴(lài)緩沖是不是很重要,最大的并發(fā)訪(fǎng)問(wèn)數(shù)量是多少等條件。而如果網(wǎng)站上對(duì)負(fù)載影響很厲害的CGI程序是由網(wǎng)站自己開(kāi)發(fā)的,也可以考慮在程序中自己 使用Locaction來(lái)支持負(fù)載均衡。半中心化的負(fù)載分擔(dān)方式至少在國(guó)內(nèi)當(dāng)前的情況下還不需要。
    http://galaxystar.javaeye.com/blog/50546

    主站蜘蛛池模板: 亚洲中文字幕无码av在线| 337p日本欧洲亚洲大胆人人| 国产桃色在线成免费视频| 亚洲精品无码你懂的| 亚洲综合精品香蕉久久网| 最好看的中文字幕2019免费| 亚洲日韩一区二区一无码| 亚洲一级Av无码毛片久久精品| 免费无码VA一区二区三区 | 狠狠综合亚洲综合亚洲色| 国产成人精品日本亚洲专区61 | 成人免费夜片在线观看| 久久水蜜桃亚洲av无码精品麻豆| 毛片免费观看视频| aa在线免费观看| 天天爽亚洲中文字幕| 中文国产成人精品久久亚洲精品AⅤ无码精品| 99热在线精品免费播放6| 国产亚洲综合一区二区三区| 亚洲第一精品福利| mm1313亚洲精品国产| 色se01短视频永久免费| 丰满人妻一区二区三区免费视频| 亚洲第一男人天堂| 亚洲AV无码久久精品狠狠爱浪潮 | 三上悠亚亚洲一区高清| 免费无码精品黄AV电影| 国产精品99久久免费观看| 曰批全过程免费视频观看免费软件| 亚洲天堂电影在线观看| 亚洲综合伊人久久大杳蕉| 国产精品色午夜免费视频| 免费观看无遮挡www的视频| 久久久精品视频免费观看| 亚洲国产精品网站在线播放| 亚洲国产日韩在线一区| 久久精品国产亚洲沈樵| 亚洲AV中文无码乱人伦在线视色| 手机在线看永久av片免费| 免费A级毛片av无码| 青青操免费在线观看|