亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法及裝置的制作方法

文檔序號(hào):7863077閱讀:147來源:國知局
專利名稱:一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法及>J-U ρ α裝直。
背景技術(shù)
LVS (Linux Virtual Server, Linux虛擬主機(jī))服務(wù)器作為網(wǎng)絡(luò)接入設(shè)備,負(fù)責(zé)流量的負(fù)載均衡,在接收到用戶的請(qǐng)求后,會(huì)按照一定的負(fù)載均衡策略把用戶請(qǐng)求分發(fā)給后端的RS (Real Server,真實(shí)服務(wù)器)。
輪詢方式的負(fù)載均衡策略是目前使用最為廣泛的均衡策略,它又分為兩種 RR(Round-Robin,輪詢)和 WRR(Weighted Round-Robin,基于權(quán)值的輪詢)。
圖I為相關(guān)技術(shù)中RR負(fù)載均衡策略原理示意圖;如圖I所示,RR的工作原理如下
多個(gè)用戶向LVS發(fā)起連接,LVS會(huì)把用戶的連接逐一分發(fā)給后端的RS
連接I分發(fā)給RSI,連接2分發(fā)給RS2,連接3分發(fā)給RS3。
圖2為相關(guān)技術(shù)中WRR負(fù)載均衡策略原理示意圖;如圖2所示,WRR的工作原理如下
多個(gè)用戶向LVS發(fā)起連接,LVS上配置了 3個(gè)RS,這3個(gè)RS的權(quán)值如下
RSl :權(quán)值為 3 ;
RS2 :權(quán)值為 2 ;
RS3:權(quán)值為 I;
LVS會(huì)把用戶的連接按照權(quán)值分發(fā)給后端的RS
3個(gè)連接(連接1、2、4)分發(fā)給RS1,2個(gè)連接(連接3、5)分發(fā)給RS2,1個(gè)連接(連接6)分發(fā)給RS3。
上述輪詢負(fù)載均衡策略和基于權(quán)值的輪詢負(fù)載均衡策略對(duì)訪問請(qǐng)求的處理方式, 均是基于系統(tǒng)后端真實(shí)服務(wù)器當(dāng)前連接用戶數(shù)而對(duì)用戶訪問請(qǐng)求的分發(fā),采用的分發(fā)依據(jù)較為單一,相比隨機(jī)分發(fā),對(duì)系統(tǒng)后端多臺(tái)RS運(yùn)行效率的提升并不明顯。發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法和相應(yīng)的用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的裝置。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法,包括接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息;對(duì)所述多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息分別進(jìn)行解析,得到每個(gè)請(qǐng)求消息中的數(shù)據(jù)內(nèi)容;在每個(gè)所述請(qǐng)求消息的數(shù)據(jù)內(nèi)容中,查找包含所述請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段;將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理。
可選的,所述將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理包括獲得每個(gè)請(qǐng)求消息中所述訪問對(duì)象字段的內(nèi)容的第一哈希值;將每個(gè)所述訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息優(yōu)先選擇同一服務(wù)器;將所述取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器進(jìn)行處理。
可選的,所述將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理包括為具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器;判斷所選擇的服務(wù)器是否可用;若判斷結(jié)果為所選擇的服務(wù)器可用,則將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器進(jìn)行處理;若判斷結(jié)果為所選擇的服務(wù)器不可用,則重新確定后端服務(wù)可用的服務(wù)器的數(shù)目;將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一所述服務(wù)可用的服務(wù)器進(jìn)行處理。
可選的,所述將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一所述服務(wù)可用的服務(wù)器進(jìn)行處理包括獲得每個(gè)請(qǐng)求消息中所述訪問對(duì)象字段的內(nèi)容的第一哈希值;將每個(gè)所述訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)所述服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息選擇同一所述服務(wù)可用的服務(wù)器;將所述取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所選擇的同一所述服務(wù)可用的服務(wù)器進(jìn)行處理。
可選的,所述訪問對(duì)象字段為統(tǒng)一資源定位符URL字段,或主機(jī)和端口號(hào)Host字段。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的裝置,包括第一接收模塊,用于接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息;第一解析模塊,用于對(duì)所述多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息分別進(jìn)行解析,得到每個(gè)請(qǐng)求消息中的數(shù)據(jù)內(nèi)容;第一查找模塊,用于在每個(gè)所述請(qǐng)求消息的數(shù)據(jù)內(nèi)容中,查找包含所述請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段;第一分發(fā)模塊,用于將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理。
可選的,所述第一分發(fā)模塊包括第一哈希值獲得單元,用于獲得每個(gè)請(qǐng)求消息中所述訪問對(duì)象字段的內(nèi)容的第一哈希值;第一選擇單元,用于將每個(gè)所述訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息優(yōu)先選擇同一服務(wù)器;第一分發(fā)單元,用于將所述取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所述第一選擇單元選擇的同一服務(wù)器進(jìn)行處理。
可選的,所述第一分發(fā)模塊包括第二選擇單元,用于為具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器;第一判斷單元,用于判斷所述第二選擇單元選擇的服務(wù)器是否可用;第二分發(fā)單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為所選擇的服務(wù)器可用時(shí),將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給所述第二選擇單元選擇的同一服務(wù)器進(jìn)行處理;第一服務(wù)可用確定單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為所選擇的服務(wù)器不可用時(shí),重新確定后端服務(wù)可用的服務(wù)器的數(shù)目;第三分發(fā)單元, 用于將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一所述服務(wù)可用的服務(wù)器進(jìn)行處理。
可選的,所述第三分發(fā)單元包括第一計(jì)算子單元,用于計(jì)算每個(gè)請(qǐng)求消息中所述訪問對(duì)象字段的內(nèi)容的第一哈希值;第一選擇子單元,用于將每個(gè)所述訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)所述服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息選擇同一所述服務(wù)可用的服務(wù)器;第一分發(fā)子單元,用于將所述取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所述第一選擇子單元選擇的同一所述服務(wù)可用的服務(wù)器進(jìn)行處理。
可選的,所述訪問對(duì)象字段為統(tǒng)一資源定位符URL字段,或主機(jī)和端口號(hào)Host字段。
本發(fā)明的技術(shù)方案根據(jù)客戶端設(shè)備發(fā)送的請(qǐng)求消息內(nèi)容選擇服務(wù)的服務(wù)器,將包含請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段具有相同內(nèi)容的多個(gè)客戶端設(shè)備,即訪問同一網(wǎng)絡(luò)資源對(duì)象的多個(gè)客戶端設(shè)備,發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理,降低了相同緩存內(nèi)容所占的空間,使得系統(tǒng)后端多臺(tái)服務(wù)器有更多的空間緩存更多的內(nèi)容,從而提高了系統(tǒng)后端多臺(tái)服務(wù)器的利用率和命中率,較大地提升了系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率。
本發(fā)明的技術(shù)方案根據(jù)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)通信協(xié)議請(qǐng)求消息內(nèi)容選擇服務(wù)的服務(wù)器,將標(biāo)識(shí)客戶端設(shè)備身份內(nèi)容的設(shè)備標(biāo)識(shí)字段具有相同內(nèi)容的多個(gè)訪問請(qǐng)求,即同一臺(tái)客戶端設(shè)備的多個(gè)訪問請(qǐng)求,發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理,這樣,同一臺(tái)客戶端設(shè)備的多個(gè)訪問請(qǐng)求只需要在一臺(tái)服務(wù)器上建立Session (會(huì)話)對(duì)象,(與同一臺(tái)客戶端設(shè)備的多個(gè)訪問請(qǐng)求分別由多臺(tái)服務(wù)器處理,需要在多臺(tái)服務(wù)器分別建立Session對(duì)象相比),降低了 Session對(duì)象保持持久性所需要的服務(wù)器內(nèi)存量,從而較大地提升了系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。


通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中
圖I為相關(guān)技術(shù)中RR負(fù)載均衡策略原理示意圖2為相關(guān)技術(shù)中WRR負(fù)載均衡策略原理示意圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法流程圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的對(duì)請(qǐng)求消息進(jìn)行讀取并解析的示意圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法流程圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的裝置示意圖; 以及
圖7示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的裝置示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
請(qǐng)參閱圖3,其為本發(fā)明一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法第一實(shí)施例流程圖。在本實(shí)施例中,包括如下步驟
步驟310 :接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息。
客戶端設(shè)備發(fā)送的請(qǐng)求消息可以是任意網(wǎng)絡(luò)通信協(xié)議的請(qǐng)求消息,例如網(wǎng)絡(luò)傳輸協(xié)議(包括 HTTP (HyperText Transfer Protocol,超文本傳輸協(xié)議),HTTPS (HyperText Transfer Protocol over Secure Socket Layer,安全超級(jí)文本傳輸協(xié)議),F(xiàn)TP (File Transfer Protocol,文件傳輸協(xié)議)等)請(qǐng)求消息。在具體實(shí)現(xiàn)本步驟時(shí),有多種實(shí)現(xiàn)方式,例如,可以通過虛擬主機(jī)如LVS接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息,也可以通過真實(shí)的網(wǎng)絡(luò)接入設(shè)備作為請(qǐng)求調(diào)度器接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息。本發(fā)明實(shí)施例對(duì)如何接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息沒有限制,只要能夠?qū)崿F(xiàn)對(duì)客戶端設(shè)備發(fā)送的請(qǐng)求消息的接收,即可應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案。
步驟S320 :對(duì)多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息分別進(jìn)行解析,得到每個(gè)請(qǐng)求消息中的數(shù)據(jù)內(nèi)容。
客戶端設(shè)備發(fā)送的請(qǐng)求消息一般以ASCII碼數(shù)據(jù)形式發(fā)送,通過對(duì)其進(jìn)行解析, 將ASCII碼數(shù)據(jù)形式的數(shù)據(jù)映射為技術(shù)人員慣用的數(shù)據(jù)形式。參閱圖4,其為本發(fā)明一實(shí)施例的對(duì)請(qǐng)求消息進(jìn)行讀取并解析的示意圖。在圖4的示意圖中,通過keepalived程序讀取客戶端設(shè)備發(fā)送的請(qǐng)求消息,并解析出包含字段信息的數(shù)據(jù)內(nèi)容;采用LVS作為訪問請(qǐng)求調(diào)度器,keepalived程序通過setsockopt接口向LVS傳遞解析出的數(shù)據(jù)內(nèi)容,LVS把該數(shù)據(jù)內(nèi)容保存在特定的數(shù)據(jù)結(jié)構(gòu)中,方便后續(xù)的查找。其中,keepalived程序運(yùn)行在User Space (用戶空間),LVS運(yùn)行在Kernel Space (內(nèi)核空間),通過setsockopt接口實(shí)現(xiàn)數(shù)據(jù)交換,以避免內(nèi)核空間的程序出錯(cuò),導(dǎo)致系統(tǒng)死機(jī)。
步驟S330 :在每個(gè)請(qǐng)求消息的數(shù)據(jù)內(nèi)容中,查找包含請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段。
客戶端設(shè)備發(fā)送的請(qǐng)求消息一般包含明確指向網(wǎng)絡(luò)訪問對(duì)象的內(nèi)容的訪問對(duì)象字段,如統(tǒng)一資源定位符URL字段,或主機(jī)和端口號(hào)Host字段。URL也被稱為網(wǎng)頁地址,如同在網(wǎng)絡(luò)上的門牌,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)的資源地址。Host字段用于指定客戶端設(shè)備所訪問的資源所在的主機(jī)名和端口號(hào)。
步驟S340 :將具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理。
在具體實(shí)施本步驟時(shí),只要多個(gè)請(qǐng)求消息的訪問對(duì)象字段的內(nèi)容相同,即將該多個(gè)請(qǐng)求消息分發(fā)給同一服務(wù)器進(jìn)行處理,亦即將訪問同一網(wǎng)絡(luò)資源對(duì)象的多個(gè)客戶端設(shè)備發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理。而具體到如何根據(jù)請(qǐng)求消息訪問對(duì)象字段的內(nèi)容選擇所分發(fā)的服務(wù)器則有多種實(shí)現(xiàn)方式,下面僅給出兩種具體實(shí)現(xiàn)方式的示例。
(一 )根據(jù)請(qǐng)求消息訪問對(duì)象字段的內(nèi)容選擇所分發(fā)的服務(wù)器的第一具體實(shí)現(xiàn)方式
Al :獲得每個(gè)請(qǐng)求消息中訪問對(duì)象字段的內(nèi)容的第一哈希值;B1 :將每個(gè)訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息優(yōu)先選擇同一服務(wù)器;C1:將取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器進(jìn)行處理。具體而言,哈希值可以通過多種算法(如CRC32算法)獲得;而在選擇服務(wù)器時(shí),也可以用后端服務(wù)器的數(shù)目對(duì)得到的第一哈希值的取值范圍分段,例如,后端服務(wù)器的數(shù)目為10,將第一哈希值的取值范圍分為1-10段,即可為第一哈希值落在同一取值范圍段的多個(gè)請(qǐng)求消息選擇同一服務(wù)器進(jìn)行處理。
( 二)根據(jù)請(qǐng)求消息訪問對(duì)象字段的內(nèi)容選擇所分發(fā)的服務(wù)器的第二具體實(shí)現(xiàn)方式
A2 :為具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器;B2 :判斷所選擇的服務(wù)器是否可用;C2 :若判斷結(jié)果為所選擇的服務(wù)器可用,則將具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器進(jìn)行處理;D2 :若判斷結(jié)果為所選擇的服務(wù)器不可用,則重新確定后端服務(wù)可用的服務(wù)器的數(shù)目;E2 :將具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一服務(wù)可用的服務(wù)器進(jìn)行處理。一般情況下,系統(tǒng)后端的服務(wù)器均能正常提供服務(wù),然而個(gè)別情況下服務(wù)器也會(huì)發(fā)生故障,這就需要及時(shí)確定所選擇的服務(wù)器是否可用,才能提供可靠的服務(wù)。具體而言,確定后端服務(wù)器是否可用的方法有多種,例如可以利用正常的數(shù)據(jù)流來確定服務(wù)器是否可用,比如TCP (Transmission Control Protocol,傳輸控制協(xié)議)連接服務(wù)器超時(shí)等;也可檢測(cè)是否可以ping(Packet Internet Groper,因特網(wǎng)包探索器)通,是否可以獲取指定內(nèi)容,或是否支持特定的腳本或行為來判定服務(wù)器是否服務(wù)可用。
可選的,在上述第二種具體實(shí)現(xiàn)方式中,A2中所述的為具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器的具體實(shí)現(xiàn)手段與前述第(一)種具體實(shí)現(xiàn)方式中的Al-Cl的手段相同,故不再贅述。E2中所述的將具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一服務(wù)可用的服務(wù)器進(jìn)行處理可以通過以下方式實(shí)現(xiàn)
E21 :獲得每個(gè)請(qǐng)求消息中訪問對(duì)象字段的內(nèi)容的第一哈希值;E22 :將每個(gè)訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息選擇同一服務(wù)可用的服務(wù)器;E23 :將取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)可用的服務(wù)器進(jìn)行處理。具體而言,哈希值可以通過多種算法(如CRC32 算法)獲得;而在選擇服務(wù)器時(shí),也可以用后端服務(wù)器的數(shù)目對(duì)得到的第一哈希值的取值范圍分段,例如,后端服務(wù)器的數(shù)目為10,將第一哈希值的取值范圍分為1-10段,即可為第一哈希值落在同一取值范圍段的多個(gè)請(qǐng)求消息選擇同一服務(wù)器進(jìn)行處理。
需要指出的是,本發(fā)明上述實(shí)施例對(duì)訪問請(qǐng)求進(jìn)行分發(fā)的實(shí)質(zhì)是,只要多個(gè)客戶端設(shè)備的請(qǐng)求消息的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容相同,就將該多個(gè)客戶端設(shè)備的請(qǐng)求消息發(fā)送到同一服務(wù)器上進(jìn)行處理,而實(shí)現(xiàn)這種分發(fā)的規(guī)則可以有多種,獲取網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的哈希值只是實(shí)現(xiàn)這種分發(fā)的一種特定規(guī)則,本領(lǐng)域技術(shù)人員可以理解,任何可以將具有相同網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的多個(gè)客戶端設(shè)備的請(qǐng)求消息發(fā)送到同一服務(wù)器上進(jìn)行處理的分發(fā)規(guī)則, 均落入本發(fā)明的保護(hù)范圍之內(nèi)。例如,也可以直接將具有相同網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的多個(gè)請(qǐng)求消息隨機(jī)分發(fā)給同一臺(tái)服務(wù)器進(jìn)行處理,同樣可以達(dá)到相同的效果。
通過實(shí)施上述步驟即可實(shí)現(xiàn)根據(jù)客戶端設(shè)備發(fā)送的請(qǐng)求消息內(nèi)容選擇服務(wù)的服務(wù)器,將包含請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段具有相同內(nèi)容的多個(gè)客戶端設(shè)備,在⑶N(Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))等Cache (緩存)類Web (網(wǎng)絡(luò))服務(wù)中,多個(gè)用戶訪問相同的Web內(nèi)容(網(wǎng)頁、圖片、JS腳本等)時(shí),訪問同一網(wǎng)絡(luò)資源對(duì)象的多個(gè)客戶端設(shè)備發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理,這樣,降低了相同緩存內(nèi)容所占的空間,使得系統(tǒng)后端多臺(tái)服務(wù)器有更多的空間緩存更多的內(nèi)容,從而提高了系統(tǒng)后端多臺(tái)服務(wù)器的利用率和命中率,較大地提升了系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率。而輪詢負(fù)載均衡策略在對(duì)客戶端設(shè)備的訪問請(qǐng)求進(jìn)行調(diào)度時(shí),會(huì)把請(qǐng)求逐一分發(fā)給后端的服務(wù)器處理,基于權(quán)值的輪詢負(fù)載均衡策略則根據(jù)當(dāng)前服務(wù)器權(quán)值的大小把請(qǐng)求分發(fā)給后端當(dāng)前權(quán)值較大的服務(wù)器處理,因此,輪詢負(fù)載均衡策略和基于權(quán)值的輪詢負(fù)載均衡策略均會(huì)造成把訪問對(duì)象內(nèi)容相同的多個(gè)請(qǐng)求分發(fā)給多臺(tái)服務(wù)器處理,從而導(dǎo)致后端多臺(tái)服務(wù)器有相同的Cache內(nèi)容,占用了大量的Cache空間,降低了后端多臺(tái)服務(wù)器的運(yùn)行效率。
請(qǐng)參閱圖5,其為本發(fā)明一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法第二實(shí)施例流程圖。在本實(shí)施例中,包括如下步驟
步驟510 :接收多個(gè)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息。
客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息可以是任意網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息,如 HTTP請(qǐng)求消息,HTTPS請(qǐng)求消息,F(xiàn)TP請(qǐng)求消息等。在具體實(shí)現(xiàn)本步驟時(shí),有多種實(shí)現(xiàn)方式。 例如,可以通過虛擬主機(jī)如LVS接收多個(gè)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息,也可以通過真實(shí)的網(wǎng)絡(luò)接入設(shè)備作為請(qǐng)求調(diào)度器接收多個(gè)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息。本發(fā)明實(shí)施例對(duì)如何接收多個(gè)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息沒有限制,只要能夠?qū)崿F(xiàn)對(duì)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的接收,即可應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案。
步驟520 :對(duì)多個(gè)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分別進(jìn)行解析,得到每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中的數(shù)據(jù)內(nèi)容。
客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息一般以ASCII碼數(shù)據(jù)形式發(fā)送,通過對(duì)其進(jìn)行解析,將ASCII碼數(shù)據(jù)形式的數(shù)據(jù)映射為技術(shù)人員慣用的數(shù)據(jù)形式。例如,在對(duì)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息進(jìn)行解析時(shí),也可以通過keepalived程序讀取客戶端設(shè)備發(fā)送的請(qǐng)求消息,并解析出包含字段信息的數(shù)據(jù)內(nèi)容;采用LVS作為訪問請(qǐng)求調(diào)度器,keepalived程序通過setsockopt接口向LVS傳遞解析出的數(shù)據(jù)內(nèi)容,LVS把該數(shù)據(jù)內(nèi)容保存在特定的數(shù)據(jù)結(jié)構(gòu)中,方便后續(xù)的查找。其中,keepalived程序運(yùn)行在User Space (用戶空間),LVS運(yùn)行在KernelSpace(內(nèi)核空間),通過setsockopt接口實(shí)現(xiàn)數(shù)據(jù)交換,以避免內(nèi)核空間的程序出錯(cuò),導(dǎo)致系統(tǒng)死機(jī)。
步驟530 :在每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的數(shù)據(jù)內(nèi)容中,查找包含標(biāo)識(shí)客戶端設(shè)備身份內(nèi)容的設(shè)備標(biāo)識(shí)字段;
客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息一般包含標(biāo)識(shí)客戶端設(shè)備身份的內(nèi)容的設(shè)備標(biāo)識(shí)字段,如小型文字檔案Cookie字段或標(biāo)識(shí)設(shè)備身份的隨機(jī)數(shù)字段。Cookie 是某些網(wǎng)站為了辨別客戶端身份、進(jìn)行Session跟蹤而儲(chǔ)存在客戶端設(shè)備上的數(shù)據(jù)。標(biāo)識(shí)設(shè)備身份的隨機(jī)數(shù)字段客戶端設(shè)備在發(fā)起請(qǐng)求時(shí),在HTTP頭部中添加X-Seq頭部字段進(jìn)行配置,X-Seq頭部字段的內(nèi)容為一個(gè)隨機(jī)數(shù)(在客戶端設(shè)備首次發(fā)起請(qǐng)求時(shí)配置一個(gè)隨機(jī)數(shù),該客戶端設(shè)置之后再發(fā)起請(qǐng)求時(shí)X-Seq頭部字段中的數(shù)字與第一次發(fā)起請(qǐng)求時(shí)X-Seq頭部字段中的數(shù)字相同),例如,某客戶端設(shè)備在第一次發(fā)起請(qǐng)求時(shí)X-Seq頭部字段的內(nèi)容配置為該客戶端設(shè)備發(fā)起請(qǐng)求的時(shí)間(精確到秒(S)級(jí)別),如=X-Seq : 1348451800。其中1348451800為客戶端設(shè)備發(fā)起請(qǐng)求時(shí)自世界協(xié)調(diào)時(shí)間UTC(Universal Time, Coordinated) 1970-01-0100:00:00以來所經(jīng)過的秒數(shù),當(dāng)該客戶端設(shè)備之后再次發(fā)起請(qǐng)求時(shí)X-Seq頭部字段的內(nèi)容均配置為=X-Seq : 1348451800。
步驟540 :將具有相同內(nèi)容的設(shè)備標(biāo)識(shí)字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理。
在具體實(shí)施本步驟時(shí),只要多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的設(shè)備標(biāo)識(shí)字段的內(nèi)容相同,即將該多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)器進(jìn)行處理,亦即將同一客戶端設(shè)備的多個(gè)訪問請(qǐng)求發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理。而具體到如何根據(jù)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息設(shè)備標(biāo)識(shí)字段的內(nèi)容選擇所分發(fā)的服務(wù)器則有多種實(shí)現(xiàn)方式,下面僅給出兩種具體實(shí)現(xiàn)方式的示例。
(一 )根據(jù)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息設(shè)備標(biāo)識(shí)字段的內(nèi)容選擇所分發(fā)的服務(wù)器的第一具體實(shí)現(xiàn)方式
al :獲得每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中設(shè)備標(biāo)識(shí)字段的內(nèi)容的第二哈希值;bl 將每個(gè)設(shè)備標(biāo)識(shí)字段的內(nèi)容的第二哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息優(yōu)先選擇同一服務(wù)器;cl :將取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器進(jìn)行處理。具體而言,哈希值可以通過多種算法 (如CRC32算法)獲得;而在選擇服務(wù)器時(shí),也可以用后端服務(wù)器的數(shù)目對(duì)得到的第一哈希值的取值范圍分段,例如,后端服務(wù)器的數(shù)目為10,將第一哈希值的取值范圍分為1-10段, 即可為第一哈希值落在同一取值范圍段的多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息選擇同一服務(wù)器進(jìn)行處理。
( 二)根據(jù)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息設(shè)備標(biāo)識(shí)字段的內(nèi)容選擇所分發(fā)的服務(wù)器的第二具體實(shí)現(xiàn)方式
a2:為具有相同的設(shè)備標(biāo)識(shí)字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器;b2 :判斷所選擇服務(wù)的服務(wù)器是否可用;c2 :若判斷結(jié)果為所選擇的服務(wù)器可用,則將具有相同內(nèi)容的設(shè)備標(biāo)識(shí)字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器; d2 :若判斷結(jié)果為所選擇的服務(wù)器不可用,則重新確定后端服務(wù)可用的服務(wù)器的數(shù)目;e2 將具有相同內(nèi)容的設(shè)備標(biāo)識(shí)字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)可用的服務(wù)器進(jìn)行處理。一般情況下,系統(tǒng)后端的服務(wù)器均能正常提供服務(wù),然而個(gè)別情況下服務(wù)器也會(huì)發(fā)生故障,這就需要及時(shí)確定所選擇的服務(wù)器是否可用,才能提供可靠的服務(wù)。具體而言,確定后端服務(wù)器是否可用的方法有多種,例如可以利用正常的數(shù)據(jù)流來確定服務(wù)器是否可用,比如TCP (Transmission Control Protocol,傳輸控制協(xié)議)連接服務(wù)器超時(shí)等; 也可檢測(cè)是否可以ping(Packet Internet Groper,因特網(wǎng)包探索器)通,是否可以獲取指定內(nèi)容,或是否支持特定的腳本或行為來判定服務(wù)器是否服務(wù)可用。
可選的,在上述第二種具體實(shí)現(xiàn)方式中,將具有相同內(nèi)容的設(shè)備標(biāo)識(shí)字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)可用的服務(wù)器進(jìn)行處理可以通過以下方式實(shí)現(xiàn)
e21 :獲得每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中設(shè)備標(biāo)識(shí)字段的內(nèi)容的第二哈希值; e22:將每個(gè)設(shè)備標(biāo)識(shí)字段的內(nèi)容的第二哈希值對(duì)服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息選擇同一服務(wù)可用的服務(wù)器;e23 :將取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)可用的服務(wù)器進(jìn)行處理。具體而言,哈希值可以通過多種算法(如CRC32算法)獲得;而在選擇服務(wù)器時(shí),也可以用后端服務(wù)器的數(shù)目對(duì)得到的第一哈希值的取值范圍分段,例如,后端服務(wù)器的數(shù)目為10,將第一哈希值的取值范圍分為ι- ο段,即可為第一哈希值落在同一取值范圍段的多個(gè)請(qǐng)求消息選擇同一服務(wù)器進(jìn)行處理。
需要指出的是,本發(fā)明上述實(shí)施例對(duì)訪問請(qǐng)求進(jìn)行分發(fā)的實(shí)質(zhì)是,只要多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息是來自同一客戶端設(shè)備,就將該客戶端設(shè)備的多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息發(fā)送到同一服務(wù)器上進(jìn)行處理,而實(shí)現(xiàn)這種分發(fā)的規(guī)則可以有多種,獲取客戶端設(shè)備身份內(nèi)容的哈希值只是實(shí)現(xiàn)這種分發(fā)的一種特定規(guī)則,本領(lǐng)域技術(shù)人員可以理解,任何可以將具有相同客戶端設(shè)備身份內(nèi)容的多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息發(fā)送到同一服務(wù)器上進(jìn)行處理的分發(fā)規(guī)則,均落入本發(fā)明的保護(hù)范圍之內(nèi)。
通過實(shí)施上述步驟,即可實(shí)現(xiàn)根據(jù)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)通信協(xié)議請(qǐng)求消息內(nèi)容選擇服務(wù)的服務(wù)器,將標(biāo)識(shí)客戶端設(shè)備身份內(nèi)容的設(shè)備標(biāo)識(shí)字段具有相同內(nèi)容的多個(gè)訪問請(qǐng)求,即同一臺(tái)客戶端設(shè)備的多個(gè)訪問請(qǐng)求,發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理,這樣,同一臺(tái)客戶端設(shè)備的多個(gè)訪問請(qǐng)求只需要在一臺(tái)服務(wù)器上建立Session對(duì)象,降低了 Session 對(duì)象保持持久性所需要的服務(wù)器內(nèi)存量,從而較大地提升了系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率。而輪詢負(fù)載均衡策略在對(duì)客戶端設(shè)備的訪問請(qǐng)求進(jìn)行調(diào)度時(shí),會(huì)把請(qǐng)求逐一分發(fā)給后端的服務(wù)器處理,基于權(quán)值的輪詢負(fù)載均衡策略則根據(jù)當(dāng)前服務(wù)器權(quán)值的大小把請(qǐng)求分發(fā)給后端當(dāng)前權(quán)值較大的服務(wù)器處理,這樣,同一客戶端設(shè)備的多個(gè)訪問請(qǐng)求會(huì)被分發(fā)給多臺(tái)服務(wù)器處理,而同一客戶端設(shè)備的每個(gè)訪問請(qǐng)求都會(huì)在其訪問的服務(wù)器上生成一個(gè)單獨(dú)的Session對(duì)象,隨著訪問的客戶端設(shè)備的增多,為了保持每個(gè)客戶端設(shè)備在多臺(tái)服務(wù)器上Session對(duì)象的持久性,將會(huì)大大增加所占用的系統(tǒng)后端多臺(tái)服務(wù)器的內(nèi)存量,從而導(dǎo)致系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率較低。
步驟550 :如果網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的數(shù)據(jù)內(nèi)容中未查找到設(shè)備標(biāo)識(shí)字段,則在網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的數(shù)據(jù)內(nèi)容中查找包含請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段。
在客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中,并不必然包含標(biāo)識(shí)客戶端設(shè)備身份的設(shè)備標(biāo)識(shí)字段,如某些客戶端設(shè)備會(huì)禁用Cookie功能,這樣,在網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的數(shù)據(jù)內(nèi)容中就查找不到設(shè)備標(biāo)識(shí)字段。而客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息都包含指向網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段,因此,可以將訪問對(duì)象字段作為備用字段客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的數(shù)據(jù)內(nèi)容中進(jìn)行查找。
步驟560 :將具有相同內(nèi)容的訪問對(duì)象字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)器進(jìn)行處理。
在具體實(shí)施本步驟時(shí),只要多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的訪問對(duì)象字段的內(nèi)容相同,即將該多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)器進(jìn)行處理,亦即將訪問同一網(wǎng)絡(luò)資源對(duì)象的多個(gè)客戶端設(shè)備發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理。而具體到如何根據(jù)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息訪問對(duì)象字段的內(nèi)容選擇所分發(fā)的服務(wù)器則有多種實(shí)現(xiàn)方式,下面僅給出兩種具體實(shí)現(xiàn)方式的示例。
(一 )根據(jù)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息訪問對(duì)象字段的內(nèi)容選擇所分發(fā)的服務(wù)器的第一具體實(shí)現(xiàn)方式
Al :獲得每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中訪問對(duì)象字段的內(nèi)容的第一哈希值;B1 將每個(gè)訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息優(yōu)先選擇同一服務(wù)器;C1 :將取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器進(jìn)行處理。具體而言,哈希值可以通過多種算法 (如CRC32算法)獲得;而在選擇服務(wù)器時(shí),也可以用后端服務(wù)器的數(shù)目對(duì)得到的第一哈希值的取值范圍分段,例如,后端服務(wù)器的數(shù)目為10,將第一哈希值的取值范圍分為1-10段, 即可為第一哈希值落在同一取值范圍段的多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息選擇同一服務(wù)器進(jìn)行處理。
( 二)根據(jù)網(wǎng)絡(luò)傳輸協(xié)議網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息訪問對(duì)象字段的內(nèi)容選擇所分發(fā)的服務(wù)器的第二具體實(shí)現(xiàn)方式
A2:為具有相同內(nèi)容的訪問對(duì)象字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器;B2 :判斷所選擇的服務(wù)器是否可用;C2 :若判斷結(jié)果為所選擇的服務(wù)器可用,則將具有相同內(nèi)容的訪問對(duì)象字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器進(jìn)行處理;D2 :若判斷結(jié)果為所選擇的服務(wù)器不可用,則重新確定后端服務(wù)可用的服務(wù)器的數(shù)目;E2 :將具有相同內(nèi)容的訪問對(duì)象字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)可用的服務(wù)器進(jìn)行處理。一般情況下,系統(tǒng)后端的服務(wù)器均能正常提供服務(wù),然而個(gè)別情況下服務(wù)器也會(huì)發(fā)生故障,這就需要及時(shí)確定所選擇的服務(wù)器是否可用,才能提供可靠的服務(wù)。 具體而言,確定后端服務(wù)器是否可用的方法有多種,例如可以利用正常的數(shù)據(jù)流來確定服務(wù)器是否可用,比如TCP (Transmission Control Protocol,傳輸控制協(xié)議)連接服務(wù)器超時(shí)等;也可檢測(cè)是否可以ping(Packet InternetGroper,因特網(wǎng)包探索器)通,是否可以獲取指定內(nèi)容,或是否支持特定的腳本或行為來判定服務(wù)器是否服務(wù)可用。
可選的,在上述第二種具體實(shí)現(xiàn)方式中,將具有相同內(nèi)容的訪問對(duì)象字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)可用的服務(wù)器進(jìn)行處理可以通過以下方式實(shí)現(xiàn)
E21 :獲得每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中訪問對(duì)象字段的內(nèi)容的第一哈希值; E22:將每個(gè)訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息選擇同一服務(wù)可用的服務(wù)器;E23 :將取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)可用的服務(wù)器進(jìn)行處理。具體而言,哈希值可以通過多種算法(如CRC32算法)獲得;而在選擇服務(wù)器時(shí),也可以用后端服務(wù)器的數(shù)目對(duì)得到的第一哈希值的取值范圍分段,例如,后端服務(wù)器的數(shù)目為10,將第一哈希值的取值范圍分為ι- ο段,即可為第一哈希值落在同一取值范圍段的多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息選擇同一服務(wù)器進(jìn)行處理。
需要指出的是,本發(fā)明上述實(shí)施例對(duì)訪問請(qǐng)求進(jìn)行分發(fā)的實(shí)質(zhì)是,只要多個(gè)客戶端設(shè)備的請(qǐng)求消息的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容相同,就將該多個(gè)客戶端設(shè)備的請(qǐng)求消息發(fā)送到同一服務(wù)器上進(jìn)行處理,而實(shí)現(xiàn)這種分發(fā)的規(guī)則可以有多種,獲取網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的哈希值只是實(shí)現(xiàn)這種分發(fā)的一種特定規(guī)則,本領(lǐng)域技術(shù)人員可以理解,任何可以將具有相同網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的多個(gè)客戶端設(shè)備的請(qǐng)求消息發(fā)送到同一服務(wù)器上進(jìn)行處理的分發(fā)規(guī)則, 均落入本發(fā)明的保護(hù)范圍之內(nèi)。
如果網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的數(shù)據(jù)內(nèi)容中未查找到設(shè)備標(biāo)識(shí)字段,通過實(shí)施上述步驟也可實(shí)現(xiàn)根據(jù)客戶端設(shè)備發(fā)送的請(qǐng)求消息內(nèi)容選擇服務(wù)的服務(wù)器,將包含請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段具有相同內(nèi)容的多個(gè)客戶端設(shè)備,即訪問同一網(wǎng)絡(luò)資源對(duì)象的多個(gè)客戶端設(shè)備,發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理,降低了相同緩存內(nèi)容所占的空間,使得系統(tǒng)后端多臺(tái)服務(wù)器有更多的空間緩存更多的內(nèi)容,從而提高了系統(tǒng)后端多臺(tái)服務(wù)器的利用率和命中率,較大地提升了系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率。
此外,需要指出的是,本發(fā)明實(shí)施例中的服務(wù)器可以是真實(shí)服務(wù)器(RS),也可以是虛擬服務(wù)器。多個(gè)虛擬服務(wù)器可以通過軟件架設(shè)在同一個(gè)物理服務(wù)器上,而每個(gè)虛擬服務(wù)器又可以提供真實(shí)服務(wù)器的所有功能,這樣相對(duì)來說可以降低每個(gè)虛擬服務(wù)器的成本。
與前述本發(fā)明實(shí)施例提供的一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的裝置,如圖6所示,該裝置包括
第一接收模塊610,用于接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息;
第一解析模塊620,用于對(duì)多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息分別進(jìn)行解析,得到每個(gè)請(qǐng)求消息中的數(shù)據(jù)內(nèi)容;
第一查找模塊630,用于在每個(gè)請(qǐng)求消息的數(shù)據(jù)內(nèi)容中,查找包含請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段;
第一分發(fā)模塊640,用于將具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理。
在具體實(shí)施時(shí),只要多個(gè)請(qǐng)求消息的訪問對(duì)象字段的內(nèi)容相同,即將該多個(gè)請(qǐng)求消息分發(fā)給同一服務(wù)器進(jìn)行處理,亦即將訪問同一網(wǎng)絡(luò)資源對(duì)象的多個(gè)客戶端設(shè)備發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理。
其中,在一種具體的實(shí)施方式下,第一分發(fā)模塊640具體可以包括第一哈希值獲得單元,用于計(jì)算每個(gè)請(qǐng)求消息中訪問對(duì)象字段的內(nèi)容的第一哈希值;第一選擇單元,用于將每個(gè)訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息優(yōu)先選擇同一服務(wù)器;第一分發(fā)單元,用于將取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給第一選擇單元選擇的同一服務(wù)器進(jìn)行處理。
其中,在另一種具體的實(shí)施方式下,第一分發(fā)模塊640具體可以包括第二選擇單元,用于為具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器;第一判斷單元,用于判斷第二選擇單元選擇的服務(wù)器是否可用;第二分發(fā)單元,用于當(dāng)?shù)谝慌袛鄦卧呐袛嘟Y(jié)果為所選擇的服務(wù)器可用時(shí),將具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給第二選擇單元選擇的同一服務(wù)器進(jìn)行處理;第一服務(wù)可用確定單元,用于當(dāng)?shù)谝慌袛鄦卧呐袛嘟Y(jié)果為所選擇的服務(wù)器不可用時(shí),重新確定后端服務(wù)可用的服務(wù)器的數(shù)目;第三分發(fā)單元,用于將具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一服務(wù)可用的服務(wù)器進(jìn)行處理。
其中,第三分發(fā)單元具體可以包括第一計(jì)算子單元,用于計(jì)算每個(gè)請(qǐng)求消息中訪問對(duì)象字段的內(nèi)容的第一哈希值;第一選擇子單元,用于將每個(gè)訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息選擇同一服務(wù)可用的服務(wù)器;第一分發(fā)子單元,用于將取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給第一選擇子單元選擇的同一服務(wù)可用的服務(wù)器進(jìn)行處理。
可選的,訪問對(duì)象字段可以為統(tǒng)一資源定位符URL字段,或主機(jī)和端口號(hào)Host字段。
通過實(shí)施上述實(shí)施例即可實(shí)現(xiàn)根據(jù)客戶端設(shè)備發(fā)送的請(qǐng)求消息內(nèi)容選擇服務(wù)的服務(wù)器,將包含請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段具有相同內(nèi)容的多個(gè)客戶端設(shè)備,在⑶N(Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))等Cache (緩存)類Web (網(wǎng)絡(luò))服務(wù)中,多個(gè)用戶訪問相同的Web內(nèi)容(網(wǎng)頁、圖片、JS腳本等)時(shí),訪問同一網(wǎng)絡(luò)資源對(duì)象的多個(gè)客戶端設(shè)備發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理,這樣,降低了相同緩存內(nèi)容所占的空間,使得系統(tǒng)后端多臺(tái)服務(wù)器有更多的空間緩存更多的內(nèi)容,從而提高了系統(tǒng)后端多臺(tái)服務(wù)器的利用率和命中率,較大地提升了系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率。而輪詢負(fù)載均衡策略在對(duì)客戶端設(shè)備的訪問請(qǐng)求進(jìn)行調(diào)度時(shí),會(huì)把請(qǐng)求逐一分發(fā)給后端的服務(wù)器處理,基于權(quán)值的輪詢負(fù)載均衡策略則根據(jù)當(dāng)前服務(wù)器權(quán)值的大小把請(qǐng)求分發(fā)給后端當(dāng)前權(quán)值較大的服務(wù)器處理,因此,輪詢負(fù)載均衡策略和基于權(quán)值的輪詢負(fù)載均衡策略均會(huì)造成把訪問對(duì)象內(nèi)容相同的多個(gè)請(qǐng)求分發(fā)給多臺(tái)服務(wù)器處理,從而導(dǎo)致后端多臺(tái)服務(wù)器有相同的Cache內(nèi)容,占用了大量的Cache空間,降低了后端多臺(tái)服務(wù)器的運(yùn)行效率。
與前述本發(fā)明實(shí)施例提供的一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的裝置,如圖7所示,該裝置包括
第二接收模塊710,用于接收多個(gè)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息;
第二解析模塊720,用于對(duì)多個(gè)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分別進(jìn)行解析,得到每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中的數(shù)據(jù)內(nèi)容;
第二查找模塊730,用于在每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的數(shù)據(jù)內(nèi)容中,查找包含標(biāo)識(shí)客戶端設(shè)備身份內(nèi)容的設(shè)備標(biāo)識(shí)字段;
第二分發(fā)模塊740,用于將具有相同內(nèi)容的設(shè)備標(biāo)識(shí)字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理。
在具體實(shí)施時(shí),只要多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的設(shè)備標(biāo)識(shí)字段的內(nèi)容相同,即將該多個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)器進(jìn)行處理,亦即將同一客戶端設(shè)備的多個(gè)訪問請(qǐng)求發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理。而具體到如何根據(jù)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息設(shè)備標(biāo)識(shí)字段的內(nèi)容選擇所分發(fā)的服務(wù)器則有多種實(shí)現(xiàn)方式。
其中,在一種具體的實(shí)施方式下,第二分發(fā)模塊740包括第二哈希值獲得單元, 用于獲得每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中設(shè)備標(biāo)識(shí)字段的內(nèi)容的第二哈希值;第三選擇單元,用于將每個(gè)設(shè)備標(biāo)識(shí)字段的內(nèi)容的第二哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息優(yōu)先選擇同一服務(wù)器;第四分發(fā)單元,將取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息優(yōu)先分發(fā)給第三選擇單元選擇的同一服務(wù)器進(jìn)行處理。
其中,在另一種具體的實(shí)施方式下,第二分發(fā)模塊740包括第四選擇單元,用于為具有相同內(nèi)容的設(shè)備標(biāo)識(shí)字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器;第二判斷單元,用于判斷第四選擇單元選擇的服務(wù)器是否可用;第五分發(fā)單元,用于當(dāng)?shù)诙袛鄦卧呐袛嘟Y(jié)果為所選擇的服務(wù)器可用時(shí),將具有相同內(nèi)容的設(shè)備標(biāo)識(shí)字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給第四選擇單元選擇的同一服務(wù)器;第二服務(wù)可用確定單元,用于當(dāng)?shù)诙袛鄦卧呐袛嘟Y(jié)果為所選擇的服務(wù)器不可用時(shí),重新確定后端服務(wù)可用的服務(wù)器的數(shù)目;第六分發(fā)單元,用于將具有相同內(nèi)容的設(shè)備標(biāo)識(shí)字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)可用的服務(wù)器進(jìn)行處理。
可選的,第六分發(fā)單元具體可以包括第二計(jì)算子單元,用于獲得每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中設(shè)備標(biāo)識(shí)字段的內(nèi)容的第二哈希值;第二選擇子單元,用于將每個(gè)設(shè)備標(biāo)識(shí)字段的內(nèi)容的第二哈希值對(duì)服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息選擇同一服務(wù)可用的服務(wù)器;第二分發(fā)子單元,用于將取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給第二選擇子單元選擇的同一服務(wù)可用的服務(wù)器進(jìn)行處理。
在一種可選的具體實(shí)施方式
中,該裝置還可以包括第三查找模塊,用于當(dāng)?shù)诙檎夷K在網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的數(shù)據(jù)內(nèi)容中未查找到設(shè)備標(biāo)識(shí)字段時(shí),則在網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息的數(shù)據(jù)內(nèi)容中查找包含請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段;第三分發(fā)模塊,用于將具有相同內(nèi)容的訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一服務(wù)器進(jìn)行處理。
可選的,第三分發(fā)模塊具體可以包括
第三哈希值獲得單元,用于獲得每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中訪問對(duì)象字段的內(nèi)容的第一哈希值;
第五選擇單元,將每個(gè)訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息選擇同一服務(wù)器;
第七分發(fā)單元,用于將取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給第五選擇單元選擇的同一服務(wù)器進(jìn)行處理。
在另一種可選的具體實(shí)施方式
中,第三分發(fā)模塊具體可以包括
第六選擇單元,用于為具有相同內(nèi)容的訪問對(duì)象字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息選擇同一服務(wù)器;
第三判斷單元,用于判斷第六選擇單元選擇的服務(wù)器是否可用;
第八分發(fā)單元,用于當(dāng)?shù)谌袛鄦卧呐袛嘟Y(jié)果為所選擇的服務(wù)器可用時(shí),將具有相同的訪問對(duì)象字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給第六選擇單元選擇的同一服務(wù)器;
第三服務(wù)可用確定單元,用于當(dāng)?shù)谌袛鄦卧呐袛嘟Y(jié)果為所選擇的服務(wù)器不可用時(shí),重新確定后端服務(wù)可用的服務(wù)器的數(shù)目;
第九分發(fā)單元,用于將具有相同內(nèi)容的訪問對(duì)象字段的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給同一服務(wù)可用的服務(wù)器進(jìn)行處理。
在一種可選的具體實(shí)施方式
中,第九分發(fā)單元具體可以包括
第三計(jì)算子單元,用于計(jì)算每個(gè)網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息中訪問對(duì)象字段的內(nèi)容的第一哈希值;
第三選擇子單元,用于將每個(gè)訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息選擇同一服務(wù)可用的服務(wù)器;
第三分發(fā)子單元,用于將取模得到相同余數(shù)的各網(wǎng)絡(luò)傳輸協(xié)議請(qǐng)求消息分發(fā)給第三選擇子單元選擇的同一服務(wù)可用的服務(wù)器進(jìn)行處理。
可選的,設(shè)備標(biāo)識(shí)字段為小型文字檔案Cookie字段或標(biāo)識(shí)設(shè)備身份的隨機(jī)數(shù)字段。
可選的,訪問對(duì)象字段為統(tǒng)一資源定位符URL字段,或主機(jī)和端口號(hào)Host字段。
通過實(shí)施上述實(shí)施例,即可實(shí)現(xiàn)根據(jù)客戶端設(shè)備發(fā)送的網(wǎng)絡(luò)通信協(xié)議請(qǐng)求消息內(nèi)容選擇服務(wù)的服務(wù)器,將標(biāo)識(shí)客戶端設(shè)備身份內(nèi)容的設(shè)備標(biāo)識(shí)字段具有相同內(nèi)容的多1個(gè)訪問請(qǐng)求,即同一臺(tái)客戶端設(shè)備的多個(gè)訪問請(qǐng)求,發(fā)送到同一臺(tái)服務(wù)器上進(jìn)行處理,這樣,同一臺(tái)客戶端設(shè)備的多個(gè)訪問請(qǐng)求只需要在一臺(tái)服務(wù)器上建立Session對(duì)象,降低了 Session對(duì)象保持持久性所需要的服務(wù)器內(nèi)存量,從而較大地提升了系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率。而輪詢負(fù)載均衡策略在對(duì)客戶端設(shè)備的訪問請(qǐng)求進(jìn)行調(diào)度時(shí),會(huì)把請(qǐng)求逐一分發(fā)給后端的服務(wù)器處理,基于權(quán)值的輪詢負(fù)載均衡策略則根據(jù)當(dāng)前服務(wù)器權(quán)值的大小把請(qǐng)求分發(fā)給后端當(dāng)前權(quán)值較大的服務(wù)器處理,這樣,同一客戶端設(shè)備的多個(gè)訪問請(qǐng)求會(huì)被分發(fā)給多臺(tái)服務(wù)器處理,而同一客戶端設(shè)備的每個(gè)訪問請(qǐng)求都會(huì)在其訪問的服務(wù)器上生成一個(gè)單獨(dú)的Session對(duì)象,隨著訪問的客戶端設(shè)備的增多,為了保持每個(gè)客戶端設(shè)備在多臺(tái)服務(wù)器上Session對(duì)象的持久性,將會(huì)大大增加所占用的系統(tǒng)后端多臺(tái)服務(wù)器的內(nèi)存量,從而導(dǎo)致系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率較低。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。 各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此, 遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中, 不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
本申請(qǐng)可以應(yīng)用于計(jì)算機(jī)系統(tǒng)/服務(wù)器,其可與眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起操作。適于與計(jì)算機(jī)系統(tǒng)/服務(wù)器一起使用的眾所周知的計(jì)算系統(tǒng)、環(huán)境和 /或配置的例子包括但不限于個(gè)人計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)系統(tǒng)、瘦客戶機(jī)、厚客戶機(jī)、 手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)個(gè)人電腦、小型計(jì)算機(jī)系統(tǒng)、大型計(jì)算機(jī)系統(tǒng)和包括上述任何系統(tǒng)的分布式云計(jì)算技術(shù)環(huán)境,等等。計(jì)算機(jī)系統(tǒng)/服務(wù)器可以在由計(jì)算機(jī)系統(tǒng)執(zhí)行的計(jì)算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類型。計(jì)算機(jī)系統(tǒng)/服務(wù)器可以在分布式云計(jì)算環(huán)境中實(shí)施,分布式云計(jì)算環(huán)境中,任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的。 在分布式云計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備的本地或遠(yuǎn)程計(jì)算系統(tǒng)存儲(chǔ)介質(zhì)上。
權(quán)利要求
1.一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法,包括 接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息; 對(duì)所述多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息分別進(jìn)行解析,得到每個(gè)請(qǐng)求消息中的數(shù)據(jù)內(nèi)容; 在每個(gè)所述請(qǐng)求消息的數(shù)據(jù)內(nèi)容中,查找包含所述請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段; 將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理。
2.如權(quán)利要求I所述的方法,所述將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理包括 獲得每個(gè)請(qǐng)求消息中所述訪問對(duì)象字段的內(nèi)容的第一哈希值; 將每個(gè)所述訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息優(yōu)先選擇同一服務(wù)器; 將所述取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器進(jìn)行處理。
3.如權(quán)利要求I所述的方法,所述將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理包括 為具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器; 判斷所選擇的服務(wù)器是否可用; 若判斷結(jié)果為所選擇的服務(wù)器可用,則將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給所選擇的同一服務(wù)器進(jìn)行處理; 若判斷結(jié)果為所選擇的服務(wù)器不可用,則重新確定后端服務(wù)可用的服務(wù)器的數(shù)目;將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一所述服務(wù)可用的服務(wù)器進(jìn)行處理。
4.如權(quán)利要求3所述的方法,所述將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一所述服務(wù)可用的服務(wù)器進(jìn)行處理包括 獲得每個(gè)請(qǐng)求消息中所述訪問對(duì)象字段的內(nèi)容的第一哈希值; 將每個(gè)所述訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)所述服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息選擇同一所述服務(wù)可用的服務(wù)器; 將所述取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所選擇的同一所述服務(wù)可用的服務(wù)器進(jìn)行處理。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,所述訪問對(duì)象字段為統(tǒng)一資源定位符URL字段,或主機(jī)和端口號(hào)Host字段。
6.一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的裝置,包括 第一接收模塊,用于接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息; 第一解析模塊,用于對(duì)所述多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息分別進(jìn)行解析,得到每個(gè)請(qǐng)求消息中的數(shù)據(jù)內(nèi)容; 第一查找模塊,用于在每個(gè)所述請(qǐng)求消息的數(shù)據(jù)內(nèi)容中,查找包含所述請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段; 第一分發(fā)模塊,用于將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理。
7.如權(quán)利要求6所述的裝置,所述第一分發(fā)模塊包括 第一哈希值獲得單元,用于獲得每個(gè)請(qǐng)求消息中所述訪問對(duì)象字段的內(nèi)容的第一哈希值; 第一選擇單元,用于將每個(gè)所述訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)后端服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息優(yōu)先選擇同一服務(wù)器; 第一分發(fā)單元,用于將所述取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所述第一選擇單元選擇的同一服務(wù)器進(jìn)行處理。
8.如權(quán)利要求6所述的裝置,所述第一分發(fā)模塊包括 第二選擇單元,用于為具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先選擇同一服務(wù)器; 第一判斷單元,用于判斷所述第二選擇單元選擇的服務(wù)器是否可用; 第二分發(fā)單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為所選擇的服務(wù)器可用時(shí),將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給所述第二選擇單元選擇的同一服務(wù)器進(jìn)行處理; 第一服務(wù)可用確定單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為所選擇的服務(wù)器不可用時(shí),重新確定后端服務(wù)可用的服務(wù)器的數(shù)目; 第三分發(fā)單元,用于將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息分發(fā)給同一所述服務(wù)可用的服務(wù)器進(jìn)行處理。
9.如權(quán)利要求8所述的裝置,所述第三分發(fā)單元包括 第一計(jì)算子單元,用于計(jì)算每個(gè)請(qǐng)求消息中所述訪問對(duì)象字段的內(nèi)容的第一哈希值;第一選擇子單元,用于將每個(gè)所述訪問對(duì)象字段的內(nèi)容的第一哈希值對(duì)所述服務(wù)可用的服務(wù)器的數(shù)目取模,為取模得到相同余數(shù)的各請(qǐng)求消息選擇同一所述服務(wù)可用的服務(wù)器; 第一分發(fā)子單元,用于將所述取模得到相同余數(shù)的各請(qǐng)求消息分發(fā)給所述第一選擇子單元選擇的同一所述服務(wù)可用的服務(wù)器進(jìn)行處理。
10.根據(jù)權(quán)利要求6-9中任一項(xiàng)所述的裝置,所述訪問對(duì)象字段為統(tǒng)一資源定位符URL字段,或主機(jī)和端口號(hào)Host字段。
全文摘要
本發(fā)明公開了一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的方法,包括接收多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息;對(duì)所述多個(gè)客戶端設(shè)備發(fā)送的請(qǐng)求消息分別進(jìn)行解析,得到每個(gè)請(qǐng)求消息中的數(shù)據(jù)內(nèi)容;在每個(gè)所述請(qǐng)求消息的數(shù)據(jù)內(nèi)容中,查找包含所述請(qǐng)求消息指向的網(wǎng)絡(luò)訪問對(duì)象內(nèi)容的訪問對(duì)象字段;將具有相同內(nèi)容的所述訪問對(duì)象字段的各請(qǐng)求消息,優(yōu)先分發(fā)給同一服務(wù)器進(jìn)行處理。本發(fā)明還公開了一種用于對(duì)服務(wù)器進(jìn)行負(fù)載均衡的裝置,能夠較大地提升系統(tǒng)后端多臺(tái)服務(wù)器的運(yùn)行效率。
文檔編號(hào)H04L29/08GK102932434SQ20121039505
公開日2013年2月13日 申請(qǐng)日期2012年10月17日 優(yōu)先權(quán)日2012年10月17日
發(fā)明者唐會(huì)軍, 陳建 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1