專利名稱:一種基于WebSocket傳輸?shù)呢?fù)載均衡方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種基于WebSocket傳輸?shù)呢?fù)載均衡方法和裝置。
背景技術(shù):
隨著超文本標(biāo)記語言(HypertextMarkup Language v5, HTML5)的普及,WebSocket技術(shù)被廣泛地應(yīng)用。WebSocket包括具有報文頭(head)較小(僅2個字節(jié))、客戶端和服務(wù)端僅需一次握手便能建立鏈路而相互發(fā)送數(shù)據(jù)以及實時、全雙工等優(yōu)點。在對規(guī)模、分發(fā)能力,以及可用性等有較大、較高要求的網(wǎng)絡(luò)通信系統(tǒng)中,逐漸趨向于使用WebSocket作為其傳輸承載。而作為系統(tǒng)重要組成之一的負(fù)載均衡(Load Balance)裝置,其分發(fā)效率同樣很大程度上決定了整個系統(tǒng)的性能。所謂負(fù)載均衡,其提供了一種廉價有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。常用的負(fù)載均衡模式移植到這種網(wǎng)絡(luò)通信系統(tǒng)中會因為外部鏈接的增多,從而引發(fā)許多問題,例如,系統(tǒng)性能不正常地下降、網(wǎng)絡(luò)資源耗費嚴(yán)重或者在提高了分發(fā)效率的同時卻帶來了安全隱患。因此,在這種大規(guī)模、高分發(fā)能力、高可用性以及使用WebSocket作為傳輸?shù)木W(wǎng)絡(luò)通信系統(tǒng)中,如何提升負(fù)載均衡的分發(fā)能力,同時避免造成以上負(fù)面影響,是當(dāng)前業(yè)界普遍關(guān)注的熱點之一?,F(xiàn)有技術(shù)提供的一種在使用WebSocket作為傳輸?shù)木W(wǎng)絡(luò)通信系統(tǒng)中提升負(fù)載均衡的分發(fā)能力并避免負(fù)面影響的方法是客戶端(Client)向負(fù)載均衡裝置發(fā)起WebSocket請求;負(fù)載均衡裝置收到請求后,根據(jù)負(fù)載均衡策略,從服務(wù)器(Server)集群中選出一個應(yīng)用服務(wù)器(Application Server),向該應(yīng)用服務(wù)器發(fā)起WebSocket鏈接,將客戶端的請求轉(zhuǎn)發(fā)給它;應(yīng)用服務(wù)器將響應(yīng)返回給負(fù)載均衡裝置;負(fù)載均衡裝置再將響應(yīng)轉(zhuǎn)回給發(fā)起WebSocket請求的客戶端。此后,客戶端和應(yīng)用服務(wù)器之間的數(shù)據(jù)交互都經(jīng)過負(fù)載均衡裝置轉(zhuǎn)發(fā)。從上述現(xiàn)有技術(shù)提供的方法可知,由于WebSocket鏈接在客戶端發(fā)起請求至負(fù)載均衡裝置將該請求的響應(yīng)回轉(zhuǎn)至該客戶端的過程中一直沒有斷開,即該鏈接一直占用負(fù)載均衡裝置的資源,客戶端和應(yīng)用服務(wù)器之間的數(shù)據(jù)交互都需要經(jīng)過負(fù)載均衡裝置轉(zhuǎn)發(fā)。因此,隨著WebSocket鏈接的增多,將導(dǎo)致負(fù)載均衡裝置自身性能的持續(xù)下降。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種基于WebSocket傳輸?shù)呢?fù)載均衡方法和裝置,以節(jié)省網(wǎng)絡(luò)資源并提高分發(fā)效率。本發(fā)明實施例提供一種基于WebSocket傳輸?shù)呢?fù)載均衡方法,所述方法包括接收客戶端經(jīng)過短鏈接發(fā)起的第一 WebSocket請求;
根據(jù)負(fù)載均衡策略,使所述客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接。本發(fā)明實施例提供一種基于WebSocket傳輸?shù)呢?fù)載均衡裝置,所述裝置包括接收模塊,用于接收客戶端經(jīng)過短鏈接發(fā)起的第一 WebSocket請求;重定向模塊,用于根據(jù)負(fù)載均衡策略,使所述客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接。從上述本發(fā)明實施例可知,由于第一 WebSocket請求是通過短鏈接傳輸,在將第
一WebSocket請求重定向到服務(wù)器集群中的服務(wù)器后該短鏈接即斷開,因此,與現(xiàn)有技術(shù)相比,本發(fā)明實施例提供的方法沒有一直占用與負(fù)載均衡器之間的帶寬,節(jié)省了網(wǎng)絡(luò)資源;另一方面,由于在客戶端和服務(wù)器建立鏈接后,客戶端與服務(wù)器之間數(shù)據(jù)的交互通過客戶端和服務(wù)器之間建立的鏈接進(jìn)行,因此,與現(xiàn)有技術(shù)相比,本發(fā)明實施例提供的方法可以保證負(fù)載均衡裝置自身性能不受影響,從而提高負(fù)載均衡的分發(fā)能力。
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對現(xiàn)有技術(shù)或?qū)嵤├枋鲋兴枰褂玫母綀D作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域技術(shù)人員來講,還可以如這些附圖獲得其他的附圖。圖1是本發(fā)明實施例提供的基于WebSocket傳輸?shù)呢?fù)載均衡方法流程示意圖;圖2是本發(fā)明實施例提供的基于WebSocket傳輸?shù)呢?fù)載均衡裝置結(jié)構(gòu)示意圖;圖3是本發(fā)明另一實施例提供的基于WebSocket傳輸?shù)呢?fù)載均衡裝置結(jié)構(gòu)示意圖;圖4是本發(fā)明另一實施例提供的基于WebSocket傳輸?shù)呢?fù)載均衡裝置結(jié)構(gòu)示意圖;圖5是本發(fā)明另一實施例提供的基于WebSocket傳輸?shù)呢?fù)載均衡裝置結(jié)構(gòu)示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。請參閱附圖1,是本發(fā)明實施例提供的基于WebSocket傳輸?shù)呢?fù)載均衡方法流程示意圖,其執(zhí)行主體可以是客戶端與服務(wù)器集群之間的負(fù)載均衡裝置,主要包括步驟SlOl和步驟S102 S101,接收客戶端經(jīng)過短鏈接發(fā)起的第一 WebSocket請求。為了描述方便,將客戶端經(jīng)過短鏈接發(fā)起的WebSocket請求稱為第一 WebSocket請求。在本發(fā)明實施例中,短鏈接例如可以是超文本傳送協(xié)議(HyperText TransferProtocol, HTTP)鏈接,客戶端經(jīng)過短鏈接發(fā)起的WebSocket請求可以是一種握手請求,即表示客戶端要與負(fù)載均衡裝置建立鏈接。S102,根據(jù)負(fù)載均衡策略,使所述客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接。
負(fù)載均衡裝置根據(jù)負(fù)載均衡策略,使經(jīng)過短鏈接發(fā)起第一 WebSocket請求的客戶端重定向到服務(wù)器集群中的服務(wù)器后,即斷開與該客戶端的短鏈接。客戶端根據(jù)返回的地址,發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接。在本發(fā)明一個實施例中,根據(jù)負(fù)載均衡策略,使客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接可以是根據(jù)負(fù)載均衡策略,從服務(wù)器集群中選定服務(wù)器,然后,再將選定的服務(wù)器的地址發(fā)送至所述客戶端,以使客戶端根據(jù)所述選定的服務(wù)器的地址向所述選定的服務(wù)器發(fā)起第二 WebSocket請求,以和所述選定的服務(wù)器建立鏈接。如前所述,由于負(fù)載均衡裝置根據(jù)負(fù)載均衡策略,使經(jīng)過短鏈接發(fā)起第一WebSocket請求的客戶端重定向到服務(wù)器集群中的服務(wù)器后,即斷開了與該客戶端的短鏈接。因此,客戶端根據(jù)選定的服務(wù)器的地址向所述選定的服務(wù)器發(fā)起第二 WebSocket請求,是將該第二 WebSocket請求直接向選定的服務(wù)器發(fā)送,而不是經(jīng)過負(fù)載均衡裝置進(jìn)行轉(zhuǎn)發(fā);客戶端通過所述第二 WebSocket請求建立與選定的服務(wù)器的鏈接后,所有與所述選定的服務(wù)器之間的交互也是直接通過該客戶端與服務(wù)器之間的鏈接直接進(jìn)行,不再經(jīng)過負(fù)載均衡裝置轉(zhuǎn)發(fā)。為了解決外部客戶端訪問內(nèi)網(wǎng)的服務(wù)器集群導(dǎo)致的安全隱患,在本發(fā)明另一個實施例中提供了網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation, NAT)和重定向(Redirect)機制。所謂NAT,由NAT模塊提供的功能,是指將一個IP地址轉(zhuǎn)換為另一個IP地址,一般用于未經(jīng)注冊的內(nèi)部地址與合法的、已獲注冊的Internet IP地址間進(jìn)行轉(zhuǎn)換,在Internet IP地址緊張和/或不想讓網(wǎng)絡(luò)外部知道內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)等場合下,NAT特別適合,而重定向?qū)?yīng)于重定向器(Redirector),是指通過各種方法將各種網(wǎng)絡(luò)請求重新確定一個方向轉(zhuǎn)到其它位置,例如網(wǎng)頁重定向和域名重定向等,其中,路由選擇的變化也是對數(shù)據(jù)報文經(jīng)由路徑的一種重定向。在本發(fā)明另一個實施例中,根據(jù)負(fù)載均衡策略,使所述客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接可以是根據(jù)負(fù)載均 衡策略和服務(wù)器負(fù)載信息,從服務(wù)器集群中篩選出服務(wù)器。在本發(fā)明實施例中,由于第一對應(yīng)關(guān)系表記錄每一個服務(wù)器與每一個NAT地址的對應(yīng)關(guān)系,因此,在從服務(wù)器集群中篩選出服務(wù)器后,可以根據(jù)第一對應(yīng)關(guān)系表,將所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址發(fā)送至發(fā)起第一 WebSocket請求的客戶端。將所述篩選出的服務(wù)器的地址對應(yīng)的網(wǎng)絡(luò)地址轉(zhuǎn)換NAT地址發(fā)送至發(fā)起第一 WebSocket請求的客戶端,可以使得客戶端根據(jù)所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址發(fā)起第二 WebSocket請求。與前述實施例不同的是,該客戶端根據(jù)所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址發(fā)起第二WebSocket請求是發(fā)送至負(fù)載均衡裝置,或者更具體的是,發(fā)送至網(wǎng)絡(luò)地址轉(zhuǎn)換模塊。在使得客戶端根據(jù)所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址發(fā)起第二WebSocket請求后,進(jìn)一步包括網(wǎng)絡(luò)地址轉(zhuǎn)換模塊接收客戶端根據(jù)與選出的服務(wù)器的地址對應(yīng)的NAT地址發(fā)起的第二 WebSocket請求。由于第二 WebSocket請求包含與所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址,因此,網(wǎng)絡(luò)地址轉(zhuǎn)換模塊通過地址轉(zhuǎn)換,將所述第二WebSocket請求發(fā)送至所述篩選出的服務(wù)器。需要說明的是,客戶端根據(jù)所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址發(fā)起第二 WebSocket請求也是通過短鏈接進(jìn)行,該短鏈接也可以是HTTP鏈接。與前述發(fā)起第一WebSocket請求使用的短鏈接不同的是,發(fā)起第二 WebSocket請求后,由于服務(wù)器對第二WebSocket請求的響應(yīng)是同意與客戶端建立鏈接,因此,發(fā)起第二 WebSocket請求使用的短鏈接并沒有斷開,而是升級為長鏈接。上述通過地址轉(zhuǎn)換,將所述第二 WebSocket請求發(fā)送至所述篩選出的服務(wù)器包括包括根據(jù)第二對應(yīng)關(guān)系表,將所述第二 WebSocket請求中與所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址轉(zhuǎn)換為所述篩選出的服務(wù)器的地址;向所述篩選出的服務(wù)器發(fā)送所述經(jīng)過地址轉(zhuǎn)換的第二 WebSocket請求,其中,第二對應(yīng)關(guān)系表記錄每一個NAT地址與每一個服務(wù)器的地址的對應(yīng)關(guān)系。為了后續(xù)通過所述發(fā)起第二 WebSocket請求時使用的短鏈接將篩選出的服務(wù)器返回的響應(yīng)發(fā)送至所述客戶端,在本發(fā)明實施例中,也可以根據(jù)第二對應(yīng)關(guān)系表,將客戶端的地址轉(zhuǎn)換為與篩選出的服務(wù)器的地址對應(yīng)的NAT地址。由于此時服務(wù)器的響應(yīng)是同意客戶端發(fā)起的WebSocket請求,因此,在通過發(fā)起第二 WebSocket請求時使用的短鏈接將篩選出的服務(wù)器返回的響應(yīng)發(fā)送至客戶端后,該短鏈接并沒有斷開,而是升級為長鏈接。此后,客戶端與服務(wù)器之間的數(shù)據(jù)交互是通過客戶端與服務(wù)器之間建立的長鏈接進(jìn)行。在上述本發(fā)明另一實施例中,由于加入了 NAT和重定向機制,因此,在保證高效傳輸?shù)耐瑫r,也消除了外部客戶端訪問內(nèi)網(wǎng)的服務(wù)器集群導(dǎo)致的安全隱患。需要說明的是,負(fù)載均衡裝置通過將篩選出的服務(wù)器返回的響應(yīng)轉(zhuǎn)發(fā)至客戶端是以透傳方式發(fā)送,即對響應(yīng)僅僅進(jìn)行轉(zhuǎn)發(fā)而不做任何形式的處理,因此,這種轉(zhuǎn)發(fā)方式與服務(wù)器將響應(yīng)直接發(fā)送至客戶端而不經(jīng)過負(fù)載均衡裝置相當(dāng),可以保證負(fù)載均衡裝置自身性能不受影響,從而提高負(fù)載均衡的分發(fā)能力。在上述本發(fā)明實施例中,負(fù)載均衡策略包括靜態(tài)負(fù)載均衡策略和動態(tài)負(fù)載均衡策略等等,所謂靜態(tài)負(fù)載均衡 策略,是利用系統(tǒng)負(fù)載的平均信息,而忽視系統(tǒng)當(dāng)前的負(fù)載狀況的方法,典型地,例如輪詢算法,該算法認(rèn)為集群服務(wù)器每時每刻的處理能力是無差別的,每一次來自網(wǎng)絡(luò)的請求輪流分配給內(nèi)部中的每臺服務(wù)器,從I至N然后重新開始。具體而言,在本發(fā)明實施例中,靜態(tài)負(fù)載均衡策略包括輪詢、優(yōu)先級、基于IP、基于報頭/請求和基于cookie中的一種或任意組合。所謂動態(tài)負(fù)載均衡策略,是根據(jù)系統(tǒng)當(dāng)前的負(fù)載狀況來調(diào)整任務(wù)劃分的方法,典型地,例如加權(quán)輪詢算法,該算法考慮服務(wù)器之間的性能差異,以及服務(wù)器當(dāng)前的負(fù)載狀況,動態(tài)調(diào)整權(quán)值,根據(jù)權(quán)值的高低順序并按照輪詢的方法將任務(wù)請求分配到各個服務(wù)器。權(quán)值高的服務(wù)器比權(quán)值低的服務(wù)器能處理更多的任務(wù)請求。具體而言,在本發(fā)明實施例中,動態(tài)負(fù)載均衡策略包括加權(quán)輪詢、最小鏈接、加權(quán)最小鏈接、基于局部的最小鏈接、帶復(fù)制的基于局部的最小鏈接和最快響應(yīng)中的一種或其任意組合。例如,若服務(wù)器負(fù)載信息記錄了服務(wù)器上的鏈接數(shù)目,則負(fù)載均衡策略可以是使用最少鏈接策略,即負(fù)載均衡裝置在選擇服務(wù)器為當(dāng)前發(fā)起請求的客戶端服務(wù)時,可以選擇當(dāng)前其上鏈接數(shù)目最少的服務(wù)器為這一請求服務(wù)。在具體舉例說明時,先對本發(fā)明實施例中的第一對應(yīng)關(guān)系表和第二對應(yīng)關(guān)系表進(jìn)行說明。第一對應(yīng)關(guān)系表和第二對應(yīng)關(guān)系表是負(fù)載均衡裝置中維護(hù)的兩種關(guān)系表格,第一對應(yīng)關(guān)系表和第二對應(yīng)關(guān)系表中的服務(wù)器用其ID標(biāo)識,該標(biāo)識在服務(wù)器集群中全局唯一,服務(wù)器地址可以使用其IP地址和端口號標(biāo)識,而NAT地址也可以使用IP地址和/或端口號標(biāo)識。下述表I和表2分別是第一對應(yīng)關(guān)表和第二對應(yīng)關(guān)系表的不意
權(quán)利要求
1.一種基于WebSocket傳輸?shù)呢?fù)載均衡方法,其特征在于,所述方法包括 接收客戶端經(jīng)過短鏈接發(fā)起的第一 WebSocket請求; 根據(jù)負(fù)載均衡策略,使所述客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接。
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)負(fù)載均衡策略,使所述客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接包括 根據(jù)負(fù)載均衡策略,從所述服務(wù)器集群中選定服務(wù)器; 將所述選定的服務(wù)器的地址發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述選定的服務(wù)器的地址向所述選定的服務(wù)器發(fā)起第二 WebSocket請求以和所述選定的服務(wù)器建立鏈接。
3.如權(quán)利要求1所述的方法,其特征在于,所述使所述客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接包括 根據(jù)負(fù)載均衡策略和服務(wù)器負(fù)載信息,從服務(wù)器集群中篩選出服務(wù)器; 根據(jù)第一對應(yīng)關(guān)系表,將所述篩選出的服務(wù)器的地址對應(yīng)的網(wǎng)絡(luò)地址轉(zhuǎn)換NAT地址發(fā)送至所述客戶端,以使所述客戶端向所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址發(fā)起第二WebSocket請求,所述第一對應(yīng)關(guān)系表記錄每一個服務(wù)器與每一個NAT地址的對應(yīng)關(guān)系; 所述方法還包括 接收所述客戶端根據(jù)所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址發(fā)起的所述第二WebSocket請求,所述第二 WebSocket請求包含與所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址; 通過地址轉(zhuǎn)換,將所述第二 WebSocket請求發(fā)送至所述篩選出的服務(wù)器。
4.如權(quán)利要求3所述的方法,其特征在于,所述通過地址轉(zhuǎn)換,將所述第二WebSocket請求發(fā)送至所述篩選出的服務(wù)器包括 根據(jù)第二對應(yīng)關(guān)系表,將所述第二 WebSocket請求中與所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址轉(zhuǎn)換為所述篩選出的服務(wù)器的地址,所述第二對應(yīng)關(guān)系表記錄每一個NAT地址與每一個服務(wù)器的地址的對應(yīng)關(guān)系; 向所述篩選出的服務(wù)器發(fā)送所述經(jīng)過地址轉(zhuǎn)換的第二 WebSocket請求。
5.如權(quán)利要求2至4任意一項所述的方法,其特征在于,所述負(fù)載均衡策略包括靜態(tài)負(fù)載均衡策略和動態(tài)負(fù)載均衡策略。
6.如權(quán)利要求5所述的方法,其特征在于,所述靜態(tài)負(fù)載均衡策略包括輪詢、優(yōu)先級、基于IP、基于報頭/請求和基于cookie中的一種或任意組合,所述動態(tài)負(fù)載均衡策略包括加權(quán)輪詢、最小鏈接、加權(quán)最小鏈接、基于局部的最小鏈接、帶復(fù)制的基于局部的最小鏈接和最快響應(yīng)中的一種或任意組合。
7.一種基于WebSocket傳輸?shù)呢?fù)載均衡裝置,其特征在于,所述裝置包括 接收模塊,用于接收客戶端經(jīng)過短鏈接發(fā)起的第一 WebSocket請求; 重定向模塊,用于根據(jù)負(fù)載均衡策略,使所述客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二 WebSocket請求以和所述重定向到的服務(wù)器建立鏈接。
8.如權(quán)利要求7所述的裝置,其特征在于,所述重定向模塊包括選擇單元和地址發(fā)送單元; 所述選擇單元,用于根據(jù)負(fù)載均衡策略,從所述服務(wù)器集群中選定服務(wù)器; 所述地址發(fā)送單元,用于將所述選定的服務(wù)器的地址對應(yīng)的NAT地址發(fā)送至所述客戶端,以使所述客戶端向所述選定的服務(wù)器發(fā)起第二 WebSocket請求以和所述選定的服務(wù)器建立鏈接。
9.如權(quán)利要求7所述的裝置,其特征在于,所述重定向模塊包括篩選單元和地址發(fā)送單元,所述裝置還包括網(wǎng)絡(luò)地址轉(zhuǎn)換模塊,所述網(wǎng)絡(luò)地址轉(zhuǎn)換模塊包括接收子模塊和發(fā)送子模塊; 所述篩選單元,用于根據(jù)負(fù)載均衡策略和服務(wù)器負(fù)載信息,從服務(wù)器集群中篩選出服務(wù)器; 所述地址發(fā)送單元,用于根據(jù)第一對應(yīng)關(guān)系表,將所述篩選出的服務(wù)器的地址對應(yīng)的網(wǎng)絡(luò)地址轉(zhuǎn)換NAT地址發(fā)送至所述客戶端,以使所述客戶端向所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址發(fā)起第二 WebSocket請求,所述第一對應(yīng)關(guān)系表記錄每一個服務(wù)器與每一個NAT地址的對應(yīng)關(guān)系; 所述接收子模塊,用于接收所述第二 WebSocket請求,所述第二 WebSocket請求包含與所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址; 所述發(fā)送子模塊,用于通過地址轉(zhuǎn)換,將所述第二 WebSocket請求發(fā)送至所述篩選出的服務(wù)器。
10.如權(quán)利要求9所述的裝置,其特征在于,所述發(fā)送子模塊包括地址轉(zhuǎn)換單元和第二請求發(fā)送單元; 所述地址轉(zhuǎn)換單元,用于根據(jù)第二對應(yīng)關(guān)系表,將所述第二 WebSocket請求中與所述篩選出的服務(wù)器的地址對應(yīng)的NAT地址轉(zhuǎn)換為所述篩選出的服務(wù)器的地址,所述第二對應(yīng)關(guān)系表記錄每一個NAT地址與每一個服務(wù)器的地址的對應(yīng)關(guān)系; 所述第二請求發(fā)送單元,用于向所述篩選出的服務(wù)器發(fā)送所述經(jīng)過地址轉(zhuǎn)換的第二WebSocket 請求。
11.如權(quán)利要求8至10任意一項所述的裝置,其特征在于,所述負(fù)載均衡策略包括靜態(tài)負(fù)載均衡策略和動態(tài)負(fù)載均衡策略。
12.如權(quán)利要求11所述的裝置,其特征在于,所述靜態(tài)負(fù)載均衡策略包括輪詢、優(yōu)先級、基于IP、基于報頭/請求或基于cookie中的一種或任意組合,所述動態(tài)負(fù)載均衡策略包括加權(quán)輪詢、最小鏈接、加權(quán)最小鏈接、基于局部的最小鏈接、帶復(fù)制的基于局部的最小鏈接和最快響應(yīng)中的一種或任意組合。
全文摘要
本發(fā)明實施例提供一種基于WebSocket傳輸?shù)呢?fù)載均衡方法和裝置,以節(jié)省網(wǎng)絡(luò)資源并提高分發(fā)效率。所述方法包括接收客戶端經(jīng)過短鏈接發(fā)起的第一WebSocket請求;根據(jù)負(fù)載均衡策略,使所述客戶端重定向到服務(wù)器集群中的服務(wù)器,以使所述客戶端發(fā)起第二WebSocket請求以和所述重定向到的服務(wù)器建立鏈接。本發(fā)明實施例提供的方法沒有一直占用與負(fù)載均衡器之間的帶寬,節(jié)省了網(wǎng)絡(luò)資源;另一方面,由于在客戶端和服務(wù)器建立鏈接后,客戶端與服務(wù)器之間數(shù)據(jù)的交互通過客戶端和服務(wù)器之間建立的鏈接進(jìn)行,因此,與現(xiàn)有技術(shù)相比,本發(fā)明實施例提供的方法可以保證負(fù)載均衡裝置自身性能不受影響,從而提高負(fù)載均衡的分發(fā)能力。
文檔編號H04L12/803GK103067292SQ201210575848
公開日2013年4月24日 申請日期2012年12月26日 優(yōu)先權(quán)日2012年12月26日
發(fā)明者朱紹鏗, 唐冠軍, 王云鵬 申請人:華為技術(shù)有限公司