專利名稱:用于控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的方法、客戶機(jī)、服務(wù)器以及網(wǎng)絡(luò)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),更具體的,涉及一種用于控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的方 法和客戶機(jī)、服務(wù)器以及網(wǎng)絡(luò)系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,用戶數(shù)急劇增加,通過使用服務(wù)器集群來對(duì)大量客戶機(jī)提 供巨大數(shù)量的任務(wù)和服務(wù)以滿足用戶的需求。而采用負(fù)載均衡技術(shù)在計(jì)算機(jī)網(wǎng)絡(luò)間能夠?qū)?處理和通信活動(dòng)均勻地分配到服務(wù)器集群中的服務(wù)器,從而擴(kuò)展服務(wù)器的帶寬、增加其吞 吐量,提高服務(wù)器響應(yīng)速度,提高服務(wù)器及其它資源的利用效率,為用戶提供更好的訪問質(zhì)量。圖1為現(xiàn)有的負(fù)載均衡系統(tǒng)的原理框圖。如圖1所示,現(xiàn)有的負(fù)載均衡系統(tǒng)包括由 多個(gè)客戶機(jī)100、101等組成的客戶機(jī)集群10,諸如負(fù)載均衡器的負(fù)載均衡設(shè)備40以及由多 個(gè)服務(wù)器200、201等組成的服務(wù)器集群20,負(fù)載均衡設(shè)備40與服務(wù)器集群20相連接。從客 戶機(jī)集群10中的客戶機(jī)100發(fā)送的服務(wù)請(qǐng)求通過諸如例如以太網(wǎng)和WLAN的局域網(wǎng)(LAN) 或虛擬局域網(wǎng)(VLAN)以及諸如例如因特網(wǎng)的廣域網(wǎng)的網(wǎng)絡(luò)30送到負(fù)載均衡設(shè)備40,負(fù)載 均衡設(shè)備40根據(jù)特定的分配算法,例如輪詢法、加權(quán)輪詢法、最小連接數(shù)法、最快連接數(shù)法 以及地址哈希法等,從服務(wù)器集群20中來選擇服務(wù)器;負(fù)載均衡設(shè)備40將所選的服務(wù)器 201的IP地址和端口信息發(fā)送給客戶機(jī),從而服務(wù)器201建立與客戶機(jī)100的連接來處理 客戶機(jī)的服務(wù)請(qǐng)求。但是當(dāng)服務(wù)請(qǐng)求數(shù)量提高到一定程度時(shí)在單一的負(fù)載均衡設(shè)備上就可能會(huì)出現(xiàn) 瓶頸效應(yīng),并且專用的設(shè)備均衡設(shè)備使現(xiàn)有的網(wǎng)絡(luò)系統(tǒng)的架構(gòu)變得復(fù)雜,致使網(wǎng)絡(luò)維護(hù)需 要較高的成本。
發(fā)明內(nèi)容
因此,針對(duì)上述問題本發(fā)明提供一種用于控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的方法、客戶機(jī)、 服務(wù)器以及網(wǎng)絡(luò)系統(tǒng),以解決現(xiàn)有技術(shù)中存在的瓶頸效應(yīng)并簡化系統(tǒng)結(jié)構(gòu)。根據(jù)本發(fā)明的一個(gè)方面,提供一種用于控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的方法,該系統(tǒng)包 括客戶機(jī)集群和服務(wù)器集群,所述方法包括在所述服務(wù)器集群中的至少一個(gè)服務(wù)器處檢 測(cè)其負(fù)載狀態(tài)以確定其負(fù)載等級(jí);通過組播將包括負(fù)載等級(jí)的組播消息發(fā)送到所述客戶 機(jī)集群;以及根據(jù)所述組播消息在所述客戶機(jī)集群中的客戶機(jī)處選擇服務(wù)器以發(fā)送服務(wù)請(qǐng) 求。根據(jù)本發(fā)明的另一方面,提供了一種客戶機(jī),被配置來從多個(gè)服務(wù)器接收組播消 息,所述客戶機(jī)包括選擇裝置,用于根據(jù)所述組播消息來選擇服務(wù)器以發(fā)送服務(wù)請(qǐng)求,其 中所述組播消息包括相應(yīng)的服務(wù)器負(fù)載等級(jí)信息。根據(jù)本發(fā)明的另一方面,提供了一種服務(wù)器,被配置來向客戶機(jī)集群的組播組發(fā)送組播消息,所述服務(wù)器包括檢測(cè)裝置,用于檢測(cè)所述服務(wù)器的負(fù)載狀態(tài)以確定其負(fù)載等 級(jí);以及組播裝置,用于將包括負(fù)載等級(jí)的組播消息發(fā)送到所述客戶機(jī)集群。
根據(jù)本發(fā)明的另一方面,提供了一種網(wǎng)絡(luò)系統(tǒng),包括上述的服務(wù)器和上述的客戶 機(jī)。根據(jù)本發(fā)明的另一方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可執(zhí)行指令,當(dāng) 在計(jì)算機(jī)設(shè)備上執(zhí)行所述指令時(shí),該指令致使所述設(shè)備被配置為執(zhí)行根據(jù)權(quán)利要求1到11 中任一個(gè)的方法。另外的有利修改由從屬權(quán)利要求來限定。
結(jié)合附圖,從下面對(duì)本發(fā)明的實(shí)施例的詳細(xì)描述中本發(fā)明的目的、特點(diǎn)和優(yōu)點(diǎn)將 顯而易見,其中圖1為現(xiàn)有的負(fù)載均衡網(wǎng)絡(luò)系統(tǒng)的原理框圖;圖2示出了根據(jù)本發(fā)明的實(shí)施例的負(fù)載均衡網(wǎng)絡(luò)系統(tǒng)的原理框圖;圖3示出了根據(jù)本發(fā)明的實(shí)施例的控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡方法的流程圖;圖4示出了根據(jù)本發(fā)明的實(shí)施例的信道映射表的示意圖;圖5示出了根據(jù)本發(fā)明的另外實(shí)施例的服務(wù)器的負(fù)載均衡方法的流程圖;圖6示出了根據(jù)本發(fā)明的另外實(shí)施例的客戶機(jī)的負(fù)載均衡方法的流程圖;圖7示出了根據(jù)本發(fā)明的另外實(shí)施例的客戶機(jī)的更新負(fù)載待選服務(wù)器表或信道 映射表的流程圖;圖8示出了根據(jù)本發(fā)明的另外實(shí)施例的服務(wù)器的原理框圖;以及圖9示出了根據(jù)本發(fā)明的另外實(shí)施例的客戶機(jī)的原理框圖。
具體實(shí)施例方式下面,結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)描述。根據(jù)本發(fā)明的實(shí)施例,當(dāng)出現(xiàn)大量的服務(wù)請(qǐng)求時(shí),可以使用新的處理來控制網(wǎng)絡(luò) 系統(tǒng)的負(fù)載均衡,基本思想是利用組播技術(shù)將服務(wù)器集群中至少一個(gè)服務(wù)器的負(fù)載狀態(tài) 向客戶機(jī)集群中的客戶機(jī)進(jìn)行組播,在客戶機(jī)處通過特定的選擇算法來選擇服務(wù)器集群中 的服務(wù)器,從而分散了單一節(jié)點(diǎn)的風(fēng)險(xiǎn)。圖2示出了本發(fā)明的實(shí)施例的負(fù)載均衡網(wǎng)絡(luò)系統(tǒng)的原理框圖。如圖2所示,負(fù)載 均衡系統(tǒng)包括由多個(gè)客戶機(jī)100、101和102等組成的客戶機(jī)集群10,以及由多個(gè)服務(wù)器 200,201和202等組成的服務(wù)器集群20??蛻魴C(jī)集群10為一個(gè)組播組,組播IP地址可以 為Addl,服務(wù)器集群20為另一個(gè)組播組,組播IP地址可以為Add2。網(wǎng)絡(luò)30可以為以太網(wǎng), 當(dāng)然也可以為其它支持組播的局域網(wǎng)或者廣域網(wǎng)??蛻魴C(jī)集群10中的客戶機(jī)100通過諸 如以太網(wǎng)的網(wǎng)絡(luò)30,將服務(wù)請(qǐng)求發(fā)送到根據(jù)特定算法所選擇的諸如服務(wù)器201的服務(wù)器集 群20中的服務(wù)器。圖3為本發(fā)明實(shí)施例的控制負(fù)載均衡流程圖。如圖3所示,在步驟S301,服務(wù)器 201檢測(cè)自己的負(fù)載狀態(tài),例如根據(jù)CPU、存儲(chǔ)器和帶寬的值,以及系統(tǒng)的可容忍響應(yīng)時(shí)間 等來規(guī)劃為不同的負(fù)載等級(jí),諸如輕級(jí)、中級(jí)、高級(jí)、極端高級(jí)、擁塞或故障。對(duì)于所有主機(jī)(包括客戶機(jī)和服務(wù)器)負(fù)載等級(jí)的類型是已知的,但是每個(gè)服務(wù)器有其自己的關(guān)于確定 負(fù)載等級(jí)的標(biāo)準(zhǔn)。例如,服務(wù)器200定義95%的CPU/存儲(chǔ)器占用為“極端高級(jí)”;服務(wù)器 201被共享用于其它服務(wù)從而定義50%的CPU/存儲(chǔ)器占用為“極端高級(jí)”;服務(wù)器202具有 較差的性能從而定義80%的CPU/存儲(chǔ)器占用為“極端高級(jí)”。
此后在步驟S302,服務(wù)器201將包括其負(fù)載等級(jí)的組播消息發(fā)送到IP組播地址為 Addl的客戶機(jī)集群10組播組中,在本發(fā)明的實(shí)施例中,客戶機(jī)不需要知道服務(wù)器的特定性 能,僅需要從來自服務(wù)器的組播消息中獲悉該服務(wù)器的負(fù)載等級(jí)。當(dāng)然,組播消息中還可以 包括該服務(wù)器的特定屬性,或者定時(shí)器的時(shí)間。對(duì)于特定的應(yīng)用,可以定制特定的服務(wù)器的 信息,例如定時(shí)器時(shí)間、服務(wù)器屬性、負(fù)載等級(jí)以及負(fù)載分類標(biāo)準(zhǔn)等,從而使負(fù)載均衡具有 靈活性。更具體而言,客戶機(jī)可以通過從組播消息中獲得的相應(yīng)服務(wù)器的屬性而在維持負(fù) 載待選服務(wù)器表時(shí)將不具有該屬性的服務(wù)器排除掉。例如,服務(wù)器200能夠控制G. 726編 解碼器但是其它的服務(wù)器不能,于是該屬性將在組播消息中被呈現(xiàn)??梢詫?duì)服務(wù)器屬性附 加初始標(biāo)簽,這由客戶機(jī)來使用。如果初始標(biāo)簽保持不變,那么客戶機(jī)能夠假定服務(wù)器屬性 不變,從而客戶機(jī)能夠忽略服務(wù)器屬性處理來節(jié)省CPU時(shí)間。例如,偽代碼如下<Server><IP>135. 252. 134. 99</IP><Load>l</Load>//Moderate Load<Name>ws01</Name>〈Attribute Tag = “abc343532”><codec>g. 726,g. 711</codec>…〈/Attribute〉</server>最后,在步驟S303,客戶機(jī)集群10中的客戶機(jī)100接收到組播消息,當(dāng)在請(qǐng)求隊(duì)列 中出現(xiàn)新的服務(wù)請(qǐng)求時(shí),選擇合適的服務(wù)器來發(fā)送服務(wù)請(qǐng)求。可以根據(jù)傳統(tǒng)的輪詢法、加權(quán) 輪詢法、最小連接數(shù)法、最快連接數(shù)法以及地址哈希法等來選擇服務(wù)器。當(dāng)然還可以在客戶 機(jī)處維持一個(gè)負(fù)載待選服務(wù)器表,如表1所示,該列表可以包括待選的服務(wù)器對(duì)應(yīng)的負(fù)載 等級(jí)、屬性或IP地址來與該服務(wù)器映射起來。 表1負(fù)載待選服務(wù)器表
可替換的,該負(fù)載待選服務(wù)器表也可以是信道映射表,如圖4所示,在信道映射表 中每個(gè)信道映射能夠接收服務(wù)請(qǐng)求的服務(wù)器集群中的服務(wù)器,其包含了從組播消息中獲得 的諸如負(fù)載等級(jí)、服務(wù)器屬性、IP地址等目標(biāo)服務(wù)器的有關(guān)信息。在這種情況下客戶機(jī)選 擇服務(wù)器就變?yōu)檫x擇相對(duì)應(yīng)的信道,具體而言,如果選擇某信道來發(fā)送服務(wù)請(qǐng)求,則該請(qǐng)求 將發(fā)送到目標(biāo)服務(wù)器的IP地址。在信道選擇過程中較輕的負(fù)載等級(jí)和優(yōu)選的服務(wù)器屬性 將具有較高的優(yōu)先級(jí)。本領(lǐng)域的熟練技術(shù)人員可以理解,在本發(fā)明的實(shí)施例中,服務(wù)器集群中的一個(gè)或 更多服務(wù)器均可以檢測(cè)其負(fù)載等級(jí)并發(fā)送組播消息,其工作原理與上述類似。
下面將詳細(xì)描述服務(wù)器集群20中的服務(wù)器如何來檢測(cè)負(fù)載狀態(tài)。圖5為根據(jù)本發(fā)明實(shí)施例的服務(wù)器的負(fù)載均衡方法的流程圖。如圖5所示,服務(wù) 器可以周期性的檢測(cè)其負(fù)載狀態(tài),也可以基于諸如請(qǐng)求等命令來檢測(cè)其負(fù)載狀態(tài)或者結(jié)合 兩者來檢測(cè)負(fù)載狀態(tài)。在步驟S507,服務(wù)器檢查定時(shí)器時(shí)間是否期滿;當(dāng)期滿時(shí)則在步驟 S508,根據(jù)其自己的標(biāo)準(zhǔn)來檢測(cè)負(fù)載狀態(tài)以確定負(fù)載等級(jí);接下來在步驟S509,將對(duì)屬于 同一組播組的客戶機(jī)組播其負(fù)載等級(jí)和服務(wù)器屬性等相關(guān)信息;在步驟S510,將定時(shí)器復(fù) 位,以便開始下一個(gè)周期。參照?qǐng)D5,服務(wù)器也可以當(dāng)負(fù)載狀態(tài)發(fā)生變化時(shí)來通知客戶機(jī)。步驟S501開始該 過程;在步驟S502,服務(wù)器等待來自客戶機(jī)的服務(wù)請(qǐng)求;當(dāng)服務(wù)請(qǐng)求到來時(shí)在步驟S503開 始處理該請(qǐng)求;接下來在步驟S504服務(wù)器根據(jù)其負(fù)載標(biāo)準(zhǔn)來檢測(cè)負(fù)載狀態(tài)并確定負(fù)載等 級(jí);在步驟S505,服務(wù)器檢測(cè)當(dāng)前負(fù)載等級(jí)是否發(fā)生變化,如果發(fā)生變化(步驟S505 是), 在步驟S506仍然繼續(xù)處理該服務(wù)請(qǐng)求,但是同時(shí)進(jìn)行組播來通知屬于同一組播組的所有 客戶機(jī),告知它們其新的負(fù)載等級(jí)(步驟S509);如果當(dāng)前負(fù)載等級(jí)沒有發(fā)生變化(步驟 S505 否),則在步驟S506繼續(xù)處理服務(wù)請(qǐng)求,在步驟S511,該過程結(jié)束。在該處理請(qǐng)求過 程中服務(wù)器采取首發(fā)負(fù)責(zé)制,即不論該服務(wù)器負(fù)載狀態(tài)怎么變化,當(dāng)客戶機(jī)發(fā)送了服務(wù)請(qǐng) 求時(shí),就在該服務(wù)器上處理,即使其它服務(wù)器負(fù)載較輕,在該服務(wù)器處理完成之前也不會(huì)轉(zhuǎn) 到其它服務(wù)器上來處理該服務(wù)請(qǐng)求。這樣,服務(wù)響應(yīng)不會(huì)在不同服務(wù)器之間被推諉,保證了 服務(wù)請(qǐng)求的順利進(jìn)行。在該過程中可以引入“勤勞,,/ “懶惰”(eager upgrade/lazy downgrade)機(jī)制, 即當(dāng)負(fù)載狀態(tài)發(fā)生改變使負(fù)載加重(例如負(fù)載等級(jí)從較輕變?yōu)檩^高或者擁塞等,在本文中 也稱為負(fù)載升級(jí))時(shí),服務(wù)器集群20中的服務(wù)器將盡可能迅速的組播該負(fù)載升級(jí)消息,以 便該服務(wù)器的過載狀態(tài)信息等能夠及時(shí)到達(dá)客戶機(jī);只有在發(fā)生負(fù)載減輕(例如服務(wù)器的 負(fù)載等級(jí)從較高變?yōu)橹屑?jí)或輕級(jí)等,在本文中也稱為負(fù)載降級(jí))一段時(shí)間之后在服務(wù)器集 群的服務(wù)器處才組播該負(fù)載降級(jí)消息來通知客戶機(jī)其負(fù)載減輕,在該期間任何負(fù)載等級(jí)的 恢復(fù)都會(huì)停止負(fù)載降級(jí)消息的組播。通過采用該機(jī)制可以阻止溢出,防止服務(wù)器負(fù)載狀態(tài) 在臨界狀態(tài)下過快的變化,從而降低系統(tǒng)和網(wǎng)絡(luò)的負(fù)擔(dān)。圖6示出了根據(jù)本發(fā)明另外的實(shí)施例的客戶機(jī)的負(fù)載均衡方法的流程圖。如圖6 所示,在步驟S602檢查隊(duì)列中存在新的服務(wù)請(qǐng)求。當(dāng)出現(xiàn)新的服務(wù)請(qǐng)求時(shí),在步驟S603客戶機(jī)可以基于負(fù)載待選服務(wù)器表或信道 映射表根據(jù)諸如輪詢法等特定的算法來選擇合適的服務(wù)器或信道,該原理可參考上面的部 分,在此不再贅述。
而負(fù)載待選服務(wù)器表或信道映射表是定期更新或者基于負(fù)載狀態(tài)等有關(guān)服務(wù)器 的參數(shù)的變化來更新的。如圖7所示,在步驟S701,客戶機(jī)集群中的客戶機(jī)在客戶機(jī)組播 IP地址監(jiān)聽組播消息;在步驟S702接收到該消息并獲得負(fù)載狀態(tài)等關(guān)于服務(wù)器的參數(shù)的 最新信息;接下來在步驟S703根據(jù)所接收的服務(wù)器負(fù)載等級(jí)等參數(shù)信息,來更新負(fù)載待選 服務(wù)器表或信道映射表,例如增加新的服務(wù)器項(xiàng)、刪除現(xiàn)有的服務(wù)器項(xiàng)或者更新現(xiàn)有的服 務(wù)器項(xiàng),對(duì)于信道映射表則為插入新的信道、刪除現(xiàn)存的信道或者對(duì)現(xiàn)存的信道進(jìn)行信息 的更新。
最后,在步驟S604客戶機(jī)向所選擇的服務(wù)器發(fā)送服務(wù)請(qǐng)求。在同一個(gè)發(fā)明構(gòu)思下,圖8示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的控制網(wǎng)絡(luò)系統(tǒng)負(fù)載 均衡的服務(wù)器的原理框圖。下面結(jié)合附圖,詳細(xì)說明本實(shí)施例。如圖8所示,在服務(wù)器集群20中的控制系統(tǒng)負(fù)載均衡的服務(wù)器200包括檢測(cè)裝 置820,用于檢測(cè)所述服務(wù)器的負(fù)載狀態(tài)以確定其負(fù)載等級(jí);以及組播裝置821,用于將包 括負(fù)載等級(jí)的組播消息發(fā)送到所述客戶機(jī)集群。檢測(cè)裝置820可以周期性的檢測(cè)服務(wù)器200的負(fù)載狀態(tài)以確定其負(fù)載等級(jí),也可 以基于諸如請(qǐng)求等命令來檢測(cè)其負(fù)載狀態(tài)以確定對(duì)應(yīng)的負(fù)載等級(jí)。組播裝置821利用組播技術(shù)將包括負(fù)載等級(jí)、服務(wù)器屬性以及定時(shí)器時(shí)間等有關(guān) 該服務(wù)器200的信息的組播消息發(fā)送到屬于同一個(gè)組播組的客戶機(jī)集群10,在組播IP地址 處所屬的每個(gè)客戶機(jī)監(jiān)聽組播消息并接收。組播裝置821可以被配置為當(dāng)負(fù)載狀態(tài)發(fā)生改變使負(fù)載加重(例如負(fù)載等級(jí)從較 輕變?yōu)檩^高或者擁塞等,在本文中也稱為負(fù)載升級(jí))時(shí),其將盡可能迅速的組播該負(fù)載升 級(jí)消息,以便有關(guān)服務(wù)器200的過載狀態(tài)信息等能夠及時(shí)到達(dá)客戶機(jī)。也可以配置為只有 在發(fā)生負(fù)載減輕(例如服務(wù)器200的負(fù)載等級(jí)從較高變?yōu)橹械蓉?fù)載或輕負(fù)載等,在本文中 也稱為負(fù)載降級(jí))一段時(shí)間之后才組播該負(fù)載降級(jí)消息來通知客戶機(jī)其負(fù)載減輕。本實(shí)施例的控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的服務(wù)器的檢測(cè)裝置820和在組播裝置821可 以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場(chǎng)可 編程門陣列、可編程邏輯設(shè)備等的可編程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型 的處理器執(zhí)行的軟件實(shí)現(xiàn),也可以由上述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。本實(shí)施例的控制網(wǎng) 絡(luò)系統(tǒng)負(fù)載均衡的服務(wù)器在操作上實(shí)現(xiàn)圖5所示的實(shí)施例的在服務(wù)器處控制網(wǎng)絡(luò)系統(tǒng)負(fù) 載均衡的方法。圖9為根據(jù)本發(fā)明的另外實(shí)施例的客戶機(jī)的原理框圖。如圖9所示,本實(shí)施例的 客戶機(jī)集群10中的客戶機(jī)100包括選擇裝置910,用于根據(jù)組播消息來選擇服務(wù)器以發(fā)送 服務(wù)請(qǐng)求。客戶機(jī)100還可以包括維持裝置911,用于維持負(fù)載待選服務(wù)器表或者信道映射 表。維持裝置911可以與選擇裝置910分離,也可以集成在選擇裝置910中??蛻魴C(jī)100的選擇裝置910可以根據(jù)傳統(tǒng)的輪詢法、加權(quán)輪詢法、最小連接數(shù)法、 最快連接數(shù)法以及地址哈希法等來選擇服務(wù)器。選擇裝置910還可以參考維持裝置911所 提供的負(fù)載待選服務(wù)器表或者信道映射表來選擇將服務(wù)請(qǐng)求發(fā)送到哪個(gè)服務(wù)器。維持裝置911可以根據(jù)接收到的組播消息中的諸如負(fù)載等級(jí)、服務(wù)器屬性等有關(guān) 服務(wù)器的信息來維持一個(gè)負(fù)載待選服務(wù)器表或者負(fù)載待選服務(wù)器對(duì)應(yīng)的信道映射表。維持裝置可以被配置為通過對(duì)負(fù)載待選服務(wù)器表或者信道映射表的如下操作來更新該列表或 者信道映射表 增加插入新的服務(wù)器選項(xiàng)(信道); 刪除現(xiàn)有的服務(wù)器選項(xiàng)(信道); 更新現(xiàn)有的服務(wù)器選項(xiàng)(信道)。 本實(shí)施例的控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的客戶機(jī)的選擇裝置910和維持裝置911可以 由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場(chǎng)可編 程門陣列、可編程邏輯設(shè)備等的可編程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的 處理器執(zhí)行的軟件實(shí)現(xiàn),也可以由上述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。本實(shí)施例的控制網(wǎng)絡(luò) 系統(tǒng)負(fù)載均衡的客戶機(jī)在操作上實(shí)現(xiàn)圖6所示的實(shí)施例的在客戶機(jī)處控制網(wǎng)絡(luò)系統(tǒng)負(fù)載 均衡的方法。在本發(fā)明的實(shí)施例中的控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的方法可以由在計(jì)算機(jī)設(shè)備上運(yùn) 行的計(jì)算機(jī)可執(zhí)行指令來實(shí)現(xiàn),或者由各種類型的處理器執(zhí)行的軟件實(shí)現(xiàn)。在本發(fā)明的實(shí)施例中,由于客戶機(jī)集群10的各個(gè)客戶機(jī)可以實(shí)現(xiàn)分配服務(wù)請(qǐng)求 到所選擇的服務(wù)器,來達(dá)到網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡,并不需要第三方代理來負(fù)責(zé)服務(wù)的分配,因 此簡化了網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu),分散了單點(diǎn)失效的風(fēng)險(xiǎn),并且在該結(jié)構(gòu)中服務(wù)器只是檢測(cè)其負(fù) 載狀態(tài),并不用來實(shí)現(xiàn)負(fù)載均衡,從而簡化了其結(jié)構(gòu)。此外,由于采用組播技術(shù),在運(yùn)行時(shí)間期間在服務(wù)器集群中增加或刪除服務(wù)器變 得很容易。當(dāng)服務(wù)器要增加到服務(wù)器集群中時(shí),只需加入服務(wù)器組播組,并發(fā)送其信息到客 戶機(jī)組播組IP地址。當(dāng)服務(wù)器需要停止時(shí),它可以適當(dāng)?shù)陌l(fā)送信息到客戶機(jī)組播組IP地 址。如果服務(wù)器異常停止時(shí),客戶機(jī)可以通過周期性的檢測(cè)組播消息的失敗或者通過檢測(cè) 發(fā)送服務(wù)請(qǐng)求到服務(wù)器的失敗來獲得其狀態(tài)。相應(yīng)的,客戶機(jī)可以更新負(fù)載待選服務(wù)器表 或信道映射表來刪除該服務(wù)器。在本發(fā)明的實(shí)施例的網(wǎng)絡(luò)系統(tǒng)中,通過發(fā)送請(qǐng)求到客戶機(jī)或者服務(wù)器組播IP地 址以到達(dá)域內(nèi)的每個(gè)主機(jī),可以容易的監(jiān)視整個(gè)系統(tǒng)。進(jìn)一步,在本發(fā)明的實(shí)施例的網(wǎng)絡(luò)系統(tǒng)中,由于采用組播以及基于不存在第三方 的架構(gòu),可以定義專用的服務(wù)器屬性來幫助測(cè)試在服務(wù)器集群中的特定服務(wù)器,而無需關(guān) 閉其余服務(wù)器就能夠指引所有的流量到特定的服務(wù)器,從而簡化網(wǎng)絡(luò)系統(tǒng)的維護(hù)和管理。雖然以上結(jié)合具體實(shí)施例對(duì)本發(fā)明的控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的方法、客戶機(jī)、月艮 務(wù)器以及網(wǎng)絡(luò)系統(tǒng)進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此,本領(lǐng)域普通技術(shù)人員能夠理解 可以對(duì)本發(fā)明進(jìn)行多種變換、替換和修改而不偏離本發(fā)明的精神和范圍;本發(fā)明的保護(hù)范 圍由所附權(quán)利要求來限定。
權(quán)利要求
一種用于控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的方法,所述系統(tǒng)包括客戶機(jī)集群和服務(wù)器集群,所述方法包括在所述服務(wù)器集群中的至少一個(gè)服務(wù)器處檢測(cè)負(fù)載狀態(tài),以確定所述服務(wù)器的負(fù)載等級(jí);通過組播將包括所述負(fù)載等級(jí)的組播消息發(fā)送到所述客戶機(jī)集群;以及根據(jù)所述組播消息在所述客戶機(jī)集群中的客戶機(jī)處選擇服務(wù)器以發(fā)送服務(wù)請(qǐng)求。
2.根據(jù)權(quán)利要求1所述負(fù)載均衡的方法,其中所述負(fù)載等級(jí)包括輕級(jí)、中級(jí)、高級(jí)、極 端高級(jí)、擁塞或故障。
3.根據(jù)權(quán)利要求1或2所述負(fù)載均衡的方法,其中所述組播消息還包括服務(wù)器屬性和 /或用于廣播的定時(shí)器時(shí)間。
4.根據(jù)權(quán)利要求1到3中的任一項(xiàng)所述負(fù)載均衡的方法,其中所述檢測(cè)負(fù)載狀態(tài)的步 驟包括至少其中之一周期性地檢測(cè)所述服務(wù)器的負(fù)載狀態(tài)和根據(jù)服務(wù)請(qǐng)求來檢測(cè)所述服 務(wù)器的負(fù)載狀態(tài)。
5.根據(jù)權(quán)利要求3所述負(fù)載均衡的方法,其中所述選擇服務(wù)器以發(fā)送服務(wù)請(qǐng)求的步驟 包括根據(jù)所述組播消息中的負(fù)載等級(jí)和/或服務(wù)器屬性來選擇服務(wù)器。
6.根據(jù)權(quán)利要求1所述負(fù)載均衡的方法,其中所述方法還包括 在客戶機(jī)處維持負(fù)載待選服務(wù)器表。
7.根據(jù)權(quán)利要求6所述負(fù)載均衡的方法,其中所述選擇服務(wù)器以發(fā)送服務(wù)請(qǐng)求的步驟 包括通過所述負(fù)載待選服務(wù)器表來選擇服務(wù)器。
8.根據(jù)權(quán)利要求6所述負(fù)載均衡的方法,其中所述維持負(fù)載待選服務(wù)器表的步驟包括在客戶機(jī)處根據(jù)所接收的組播消息來更新所述負(fù)載待選服務(wù)器表。
9.根據(jù)權(quán)利要求8所述負(fù)載均衡的方法,其中所述更新負(fù)載待選服務(wù)器表的步驟包括增加新的服務(wù)器項(xiàng)、刪除現(xiàn)有的服務(wù)器項(xiàng)或者更新現(xiàn)有的服務(wù)器項(xiàng)。
10.根據(jù)權(quán)利要求6到9中任一項(xiàng)所述負(fù)載均衡的方法,其中所述負(fù)載待選服務(wù)器表包 括信道映射表。
11.根據(jù)權(quán)利要求6到9中的任一項(xiàng)所述負(fù)載均衡的方法,其中所述發(fā)送組播消息的步 驟至少包括其中之一當(dāng)發(fā)生負(fù)載加重時(shí)在所述服務(wù)器集群的服務(wù)器處立即發(fā)送所述組播 消息和只有在發(fā)生負(fù)載減輕一段時(shí)間之后在所述服務(wù)器集群的服務(wù)器處才發(fā)送所述組播 消息。
12.—種客戶機(jī),被配置來從多個(gè)服務(wù)器接收組播消息,所述客戶機(jī)包括選擇裝置,用于根據(jù)所述組播消息來選擇服務(wù)器以發(fā)送服務(wù)請(qǐng)求,其中所述組播消息 包括相應(yīng)的服務(wù)器負(fù)載等級(jí)信息。
13.根據(jù)權(quán)利要求12所述的客戶機(jī),其中所述組播消息還承載服務(wù)器屬性和/或用于 組播的定時(shí)器時(shí)間。
14.根據(jù)權(quán)利要求12所述的客戶機(jī),其中所述客戶機(jī)還包括維持裝置,用于維持負(fù)載待選服務(wù)器表。
15.根據(jù)權(quán)利要求14所述的客戶機(jī),其中所述選擇裝置被配置來通過所述負(fù)載待選服 務(wù)器表來選擇服務(wù)器。
16.根據(jù)權(quán)利要求14所述的客戶機(jī),其中所述維持裝置被配置來根據(jù)所接收的組播消 息來更新所述負(fù)載待選服務(wù)器表。
17.根據(jù)權(quán)利要求16所述的客戶機(jī),其中所述維持裝置被配置來通過增加新的服務(wù)器 項(xiàng)、刪除現(xiàn)有的服務(wù)器項(xiàng)或者更新現(xiàn)有的服務(wù)器項(xiàng)來更新負(fù)載待選服務(wù)器表。
18.根據(jù)權(quán)利要求14到17中任一項(xiàng)所述的客戶機(jī),其中所述負(fù)載待選服務(wù)器表包括信道映射表。
19.一種服務(wù)器,被配置來向客戶機(jī)集群的組播組發(fā)送組播消息,所述服務(wù)器包括檢測(cè)裝置,用于檢測(cè)所述服務(wù)器的負(fù)載狀態(tài)以確定其負(fù)載等級(jí);以及組播裝置,用于將包括所述負(fù)載等級(jí)的組播消息發(fā)送到所述客戶機(jī)集群。
20.根據(jù)權(quán)利要求19所述的服務(wù)器,其中所述負(fù)載等級(jí)包括輕級(jí)、中級(jí)、高級(jí)、極端高 級(jí)、擁塞或故障。
21.根據(jù)權(quán)利要求19或20所述的服務(wù)器,其中所述組播消息還包括服務(wù)器屬性和用于 組播的定時(shí)器時(shí)間。
22.根據(jù)權(quán)利要求19或20所述的服務(wù)器,其中所述檢測(cè)裝置被配置來至少檢測(cè)其中之 一周期性地和根據(jù)服務(wù)請(qǐng)求檢測(cè)所述服務(wù)器的負(fù)載狀態(tài)。
23.根據(jù)權(quán)利要求19或20所述的服務(wù)器,其中所述組播裝置被配置來至少進(jìn)行其中之 一當(dāng)發(fā)生負(fù)載加重時(shí)立即發(fā)送所述組播消息和只有在發(fā)生負(fù)載減輕一段時(shí)間之后才發(fā)送 所述組播消息。
24.一種網(wǎng)絡(luò)系統(tǒng),包括根據(jù)權(quán)利要求12到18中任一項(xiàng)所述的客戶機(jī)和根據(jù)權(quán)利要求 19到23中任一項(xiàng)所述的服務(wù)器。
25.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可執(zhí)行指令,當(dāng)在計(jì)算機(jī)設(shè)備上執(zhí)行所述指令 時(shí),該指令致使所述設(shè)備被配置為執(zhí)行根據(jù)權(quán)利要求1到11中任一個(gè)的方法。
全文摘要
本發(fā)明涉及一種用于控制網(wǎng)絡(luò)系統(tǒng)負(fù)載均衡的方法和客戶機(jī)、服務(wù)器以及網(wǎng)絡(luò)系統(tǒng),所述方法包括在服務(wù)器集群中的每個(gè)服務(wù)器處檢測(cè)其負(fù)載狀態(tài),以確定其負(fù)載等級(jí);通過組播將包括負(fù)載等級(jí)的組播消息發(fā)送到客戶機(jī)集群;以及根據(jù)所述組播消息在所述客戶機(jī)集群中的客戶機(jī)處選擇服務(wù)器以發(fā)送服務(wù)請(qǐng)求。因此,能夠在客戶機(jī)處來進(jìn)行負(fù)載均衡而無需專用的負(fù)載均衡設(shè)備,從而降低單點(diǎn)失效的風(fēng)險(xiǎn)并簡化網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)。
文檔編號(hào)H04L12/24GK101849384SQ200780101436
公開日2010年9月29日 申請(qǐng)日期2007年11月6日 優(yōu)先權(quán)日2007年11月6日
發(fā)明者孫紅光 申請(qǐng)人:朗訊科技公司