一種構(gòu)建網(wǎng)絡(luò)服務(wù)器池的池化器的制造方法
【專利摘要】本發(fā)明提供一種將計(jì)算機(jī)網(wǎng)絡(luò)服務(wù)器組成服務(wù)器池的池化器,其包括其中所述池化器包括:池化器的登記/注銷功能模塊、池化器的故障檢測(cè)與管理功能模塊、池化器的信息采集功能模塊、池化器的服務(wù)器選擇功能模塊、池化器的池名解析功能模塊、池化器信息同步功能模塊。池化器可以快速有效地建立任意規(guī)模的邏輯上服務(wù)器池,并通過(guò)一系列機(jī)制保障了服務(wù)器池的正常運(yùn)行,保障服務(wù)器池的資源達(dá)到最佳的使用狀況,最大限度地提高服務(wù)器資源的使用率,并消除因?yàn)榉?wù)器故障而帶來(lái)的不利影響。
【專利說(shuō)明】一種構(gòu)建網(wǎng)絡(luò)服務(wù)器池的池化器
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明是關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)服務(wù)器領(lǐng)域,特別是關(guān)于一種構(gòu)建網(wǎng)絡(luò)服務(wù)器池的池化器。
【【背景技術(shù)】】
[0002]在擁有大量的并發(fā)訪問(wèn)的應(yīng)用系統(tǒng)中,單臺(tái)服務(wù)器的處理能力已經(jīng)無(wú)法承擔(dān),為了提高服務(wù)器的處理量,通常采用一組提供相同服務(wù)的服務(wù)器構(gòu)成一個(gè)服務(wù)器集群來(lái)共同分擔(dān)整體的用戶訪問(wèn)量, 而在這一組服務(wù)器的前端需要部署一臺(tái)稱之為負(fù)載均衡器的設(shè)備,負(fù)載均衡器設(shè)備接受全部用戶的訪問(wèn)請(qǐng)求,然后按照相應(yīng)的均衡策略,將不同用戶的請(qǐng)求分別發(fā)布給不同的服務(wù)器,服務(wù)器處理后結(jié)果將返回給負(fù)載均衡器,然后負(fù)載均衡器再將結(jié)果返回給用戶,這樣用戶的訪問(wèn)量就被負(fù)載均衡器分配給多臺(tái)服務(wù)器同時(shí)處理了,從而大幅提聞系統(tǒng)的處理能力。
[0003]如圖1所示,在這種負(fù)載均衡系統(tǒng)中,用戶流量全部穿透負(fù)載均衡器設(shè)備,由于通常負(fù)載均衡器采用專用硬件實(shí)現(xiàn),其處理能力較強(qiáng)。但隨著用戶訪問(wèn)量激增,性能再?gòu)?qiáng)的單一設(shè)備同樣要面臨自身的性能瓶頸所帶來(lái)的問(wèn)題。
[0004]傳統(tǒng)負(fù)載均衡系統(tǒng)存在流量瓶頸,其原因在于全部的數(shù)據(jù)流量,都由單臺(tái)負(fù)載均衡器設(shè)備來(lái)承擔(dān),硬件設(shè)備的處理性能瓶頸是固有,也是不可能改變的。
【
【發(fā)明內(nèi)容】
】
[0005]本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的缺陷,提出一種構(gòu)建可消除負(fù)載均衡系統(tǒng)的流量瓶頸問(wèn)題的服務(wù)器池系統(tǒng)的池化器。
[0006]為達(dá)成前述目的,本發(fā)明一種池化器,其負(fù)責(zé)將多臺(tái)服務(wù)器組成一個(gè)虛擬的服務(wù)器池,并對(duì)各臺(tái)服務(wù)器的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控和采集;同時(shí)提供池名解析功能,以便能讓用戶方便地訪問(wèn)服務(wù)器;
[0007]其中所述池化器包括:
[0008]池化器的登記/注銷功能模塊:服務(wù)器在加入服務(wù)器池前需要主動(dòng)在池化器處進(jìn)行登記,登記時(shí)需提供服務(wù)器的相關(guān)系統(tǒng)信息,包括:服務(wù)器IP地址、服務(wù)端口號(hào)、服務(wù)協(xié)議、池名信息;池化器接收到服務(wù)器的登記請(qǐng)求后,要對(duì)該服務(wù)器信息進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),將該服務(wù)器登記在一個(gè)服務(wù)器列表,并歸納整理,服務(wù)器在退出服務(wù)器池之前,需要在池化器處辦理注銷手續(xù),池化器隨即將該服務(wù)器信息從服務(wù)器列表中刪除;
[0009]池化器的故障檢測(cè)與管理功能模塊:在服務(wù)器池系統(tǒng)內(nèi),池化器根據(jù)服務(wù)器的登記信息負(fù)責(zé)對(duì)服務(wù)器進(jìn)行周期性的健康狀況檢查,一旦發(fā)現(xiàn)服務(wù)器故障,池化器立刻將該服務(wù)器從服務(wù)器池中刪除掉,以保證服務(wù)器池中所有服務(wù)器都是有效的、可用的;
[0010]池化器的信息采集功能模塊:池化器周期性對(duì)池中所有服務(wù)器進(jìn)行系統(tǒng)信息采集,包括:CPU、內(nèi)存、網(wǎng)絡(luò)使用情況之類的系統(tǒng)相關(guān)信息的采集,并對(duì)該系統(tǒng)信息進(jìn)行整理,為服務(wù)器選擇策略提供依據(jù);[0011]池化器的服務(wù)器選擇功能模塊:根據(jù)池化器對(duì)各服務(wù)器池中服務(wù)器的監(jiān)控、信息采集等相關(guān)信息,按照服務(wù)器的選擇策略,始終優(yōu)先選擇資源狀況最優(yōu)的服務(wù)器,為池名解析提供依據(jù),以保證在任何時(shí)候針對(duì)任何用戶都能獲得到實(shí)時(shí)最優(yōu)的服務(wù)器資源;
[0012]池化器的池名解析功能模塊:客戶端訪問(wèn)服務(wù)器池,先在池化器處做池名解析,池化器根據(jù)客戶端提交的解析請(qǐng)求,在自己的服務(wù)器列表中進(jìn)行查詢,通常每個(gè)池名都對(duì)應(yīng)著多個(gè)服務(wù)器,池化器安裝實(shí)現(xiàn)確定好的選擇策略,為該用戶選擇一個(gè)最佳的服務(wù)器IP,并將該結(jié)果以解析回應(yīng)消息的形式反饋給客戶端;
[0013]池化器信息同步功能模塊:服務(wù)器在某臺(tái)池化器進(jìn)行登記或注銷,該臺(tái)池化器都會(huì)實(shí)時(shí)將更新信息通知其他所有池化器; 如果某臺(tái)池化器發(fā)現(xiàn)服務(wù)器故障,會(huì)立刻在自己所保存的服務(wù)器列表中將該服務(wù)器刪除,同時(shí)通過(guò)服務(wù)器更新消息通知其他所有池化器該服務(wù)器發(fā)生故障,其他池化器收到通知后,也立刻將該服務(wù)器從其保存的服務(wù)器列表中刪除掉;池化器采集到新的服務(wù)器系統(tǒng)信息,只要系統(tǒng)信息發(fā)生變化,都將實(shí)時(shí)通知其他池化器以保證所有池化器信息的一致性。
[0014]根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述池化器其用于構(gòu)建服務(wù)器池系統(tǒng),其構(gòu)建的服務(wù)器池系統(tǒng)包括:服務(wù)器池、池化器以及客戶端,其中服務(wù)器池是由一組具有相同功能的,并被統(tǒng)一管理起來(lái)的服務(wù)器組成,每個(gè)服務(wù)器池均使用唯一的池名作為標(biāo)識(shí);客戶端包括訪問(wèn)服務(wù)器池的客戶機(jī)。
[0015]通過(guò)本發(fā)明的池化器構(gòu)建的服務(wù)器池系統(tǒng),服務(wù)器需要加入服務(wù)器池時(shí),會(huì)主動(dòng)在池化器處進(jìn)行登記,向池化器提供自身的相關(guān)信息(包括:服務(wù)器IP、服務(wù)器端口、服務(wù)協(xié)議、池名等),池化器維護(hù)著一份服務(wù)器列表,根據(jù)服務(wù)器的登記信息,實(shí)時(shí)更新著這份服務(wù)器列表;服務(wù)器關(guān)閉前需在池化器處做注銷,池化器根據(jù)注銷信息將該服務(wù)器從該服務(wù)器列表中刪除;同時(shí)池化器還周期性地對(duì)服務(wù)器進(jìn)行實(shí)時(shí)的系統(tǒng)信息采集(包括:CPU、內(nèi)存、網(wǎng)絡(luò)使用情況等),服務(wù)器池系統(tǒng)的故障檢測(cè)機(jī)制,對(duì)服務(wù)器列表中的服務(wù)器實(shí)時(shí)健康檢查,一旦發(fā)現(xiàn)服務(wù)器故障,也會(huì)主動(dòng)將該服務(wù)器從服務(wù)器列表中刪除掉,從而保證了服務(wù)器池中服務(wù)器都是正常的。
[0016]池化器可以進(jìn)行任意擴(kuò)展,池化器的信息同步機(jī)制保證了多臺(tái)池化器之間的信息同步,這樣在任意一臺(tái)池化器發(fā)生故障時(shí),都不會(huì)造成信息丟失,也不會(huì)影響服務(wù)器池系統(tǒng)的正常運(yùn)行,多臺(tái)池化器同時(shí)工作,消除了池化器的單點(diǎn)故障的可能。
[0017]用戶通過(guò)池名訪問(wèn)服務(wù)器池,需要首先在池化器處做池名解析,池化器運(yùn)用服務(wù)器選擇機(jī)制為各不同用戶選擇具有最佳資源狀況的服務(wù)器,并做為解析結(jié)果反饋給用戶,這樣用戶就直接與該服務(wù)器建立連接,并進(jìn)行信息交互。
[0018]池化器在服務(wù)器池系統(tǒng)中起到了極為關(guān)鍵的作用,池化器可以快速有效地建立任意規(guī)模的邏輯上服務(wù)器池,并通過(guò)以上介紹的一系列機(jī)制保障了服務(wù)器池的正常運(yùn)行:月艮務(wù)器健康狀況檢測(cè)、服務(wù)器故障處理、服務(wù)器系統(tǒng)實(shí)時(shí)采集、根據(jù)服務(wù)器實(shí)時(shí)系統(tǒng)信息和服務(wù)器運(yùn)行狀況為用戶動(dòng)態(tài)選擇和分配最佳資源狀況的服務(wù)器,保障服務(wù)器池的資源達(dá)到最佳的使用狀況,最大限度地提高服務(wù)器資源的使用率,并消除因?yàn)榉?wù)器故障而帶來(lái)的不利影響。
【【專利附圖】
【附圖說(shuō)明】】[0019]圖1為現(xiàn)有的采用負(fù)載均衡器的服務(wù)器網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)示意圖。
[0020]圖2為本發(fā)明的服務(wù)器網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)示意圖。
[0021]圖3為本發(fā)明的池化器的結(jié)構(gòu)示意圖。
[0022]圖4為本發(fā)明的服務(wù)器網(wǎng)絡(luò)系統(tǒng)的構(gòu)建方法流程圖。
[0023]圖5為本發(fā)明的登記消息格式示意圖。
[0024]圖6為本發(fā)明的登記消息格式中池名參數(shù)格式示意圖。
[0025]圖7為本發(fā)明的登記消息格式中服務(wù)器參數(shù)格式示意圖。
[0026]圖8為本發(fā)明的登記回應(yīng)消息格式示意圖。
[0027]圖9為本發(fā)明的持續(xù)活動(dòng)消息格式示意圖。
[0028]圖10為本發(fā)明的持續(xù)活動(dòng)消息格式中系統(tǒng)參數(shù)的格式示意圖。
[0029]圖11為本發(fā)明的持續(xù)活動(dòng)確認(rèn)消息格式示意圖。
[0030]圖12為本發(fā)明的服務(wù)器更新消息格式示意圖。
【【具體實(shí)施方式】】
[0031]此處所稱的“一個(gè)實(shí)施例”或“實(shí)施例”是指可包含于本發(fā)明至少一個(gè)實(shí)現(xiàn)方式中的特定特征、結(jié)構(gòu)或特性。在本說(shuō)明書(shū)中不同地方出現(xiàn)的“在一個(gè)實(shí)施例中”并非均指同一個(gè)實(shí)施例,也不是單獨(dú)的或選擇性的與其他實(shí)施例互相排斥的實(shí)施例。
[0032]請(qǐng)參閱圖2所示,本發(fā)明的網(wǎng)絡(luò)服務(wù)器集群是一種服務(wù)器池系統(tǒng)。如圖2中所示,本發(fā)明的服務(wù)器池系統(tǒng)包括:
[0033]服務(wù)器池:服務(wù)器池是由一組具有相同功能的,并被統(tǒng)一管理起來(lái)的服務(wù)器組成,每個(gè)服務(wù)器池均使用唯一的池名作為標(biāo)識(shí);
[0034]池化器:是服務(wù)器池的管理設(shè)備,負(fù)責(zé)將多臺(tái)服務(wù)器組成一個(gè)虛擬的服務(wù)器池,并對(duì)各臺(tái)服務(wù)器的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控和采集;同時(shí)提供池名解析功能,以便能讓用戶方便地訪問(wèn)服務(wù)器;
[0035]客戶端:訪問(wèn)服務(wù)器池的客戶機(jī)。
[0036]本發(fā)明多臺(tái)具有相同服務(wù)功能的服務(wù)器按照池名構(gòu)成一個(gè)邏輯上的服務(wù)器池,服務(wù)器池由池化器進(jìn)行管理和監(jiān)控,用戶通過(guò)池名訪問(wèn)服務(wù)器池,首先在池化器處進(jìn)行池名解析,然后根據(jù)解析結(jié)果,直接訪問(wèn)具體的服務(wù)器,無(wú)需通過(guò)任何中轉(zhuǎn)設(shè)備,從而消除了中轉(zhuǎn)設(shè)備可能造成的流量瓶頸。
[0037]池化器在服務(wù)器池系統(tǒng)中充當(dāng)資源管理者的角色,池化器的管理效率直接影響到服務(wù)器池的整體運(yùn)行效率。
[0038]請(qǐng)參閱圖3所示,其顯示本發(fā)明的池化器的功能模塊結(jié)構(gòu)示意圖。如圖3所示,本發(fā)明的池化器包括:
[0039]池化器的登記/注銷功能模塊:服務(wù)器在加入服務(wù)器池前需要主動(dòng)在池化器處進(jìn)行登記(registration),登記時(shí)需提供服務(wù)器的相關(guān)系統(tǒng)信息,包括:服務(wù)器IP地址、月艮務(wù)端口號(hào)、服務(wù)協(xié)議、池名等信息;池化器接收到服務(wù)器的登記請(qǐng)求后,要對(duì)該服務(wù)器信息進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),將該服務(wù)器登記在一個(gè)服務(wù)器列表,并歸納整理。服務(wù)器在退出服務(wù)器池之前,需要在池化器處辦理注銷手續(xù)(deregistration)。池化器隨即將該服務(wù)器信息從服務(wù)器 列表中刪除。[0040]池化器的故障檢測(cè)與管理功能模塊:在服務(wù)器池系統(tǒng)內(nèi),池化器根據(jù)服務(wù)器的登記信息負(fù)責(zé)對(duì)服務(wù)器進(jìn)行周期性的健康狀況檢查,一旦發(fā)現(xiàn)服務(wù)器故障,池化器立刻將該服務(wù)器從服務(wù)器池中刪除掉,池化器的這種機(jī)制可以保證服務(wù)器池中所有服務(wù)器都是有效的、可用的。
[0041]池化器的信息采集功能模塊:池化器周期性對(duì)池中所有服務(wù)器進(jìn)行系統(tǒng)信息采集,包括:CPU、內(nèi)存、網(wǎng)絡(luò)使用情況等系統(tǒng)相關(guān)信息的采集,并對(duì)該系統(tǒng)信息進(jìn)行整理,為服務(wù)器選擇策略提供依據(jù)。
[0042]池化器的服務(wù)器選擇功能模塊:根據(jù)池化器對(duì)各服務(wù)器池中服務(wù)器的監(jiān)控、信息采集等相關(guān)信息,按照服務(wù)器的選擇策略,始終優(yōu)先選擇資源狀況最優(yōu)的服務(wù)器,為池名解析提供依據(jù),這一功能,保證了在任何時(shí)候針對(duì)任何用戶都能獲得到實(shí)時(shí)最優(yōu)的服務(wù)器資源。
[0043]池化器的池名解析功能模塊:客戶端訪問(wèn)服務(wù)器池,先在池化器處做池名解析,池化器根據(jù)客戶端提交的解析請(qǐng)求,在自己的服務(wù)器列表中進(jìn)行查詢,通常每個(gè)池名都對(duì)應(yīng)著多個(gè)服務(wù)器,池化器安裝實(shí)現(xiàn)確定好的選擇策略,為該用戶選擇一個(gè)最佳的服務(wù)器IP,并將該結(jié)果以解析回應(yīng)消息的形式反饋給客戶端。
[0044]池化器信息同步功能模塊:服務(wù)器在某臺(tái)池化器進(jìn)行登記或注銷,該臺(tái)池化器都會(huì)實(shí)時(shí)將更新信息通知其他所有池化器;如果某臺(tái)池化器發(fā)現(xiàn)服務(wù)器故障,會(huì)立刻在自己所保存的服務(wù)器列表中將該服務(wù)器刪除,同時(shí)通過(guò)服務(wù)器更新消息(Server_Update)通知其他所有池化器該服務(wù)器發(fā)生故障,其他池化器收到通知后,也立刻將該服務(wù)器從其保存的服務(wù)器列表中刪除掉;池化器采集到新的服務(wù)器系統(tǒng)信息,只要系統(tǒng)信息發(fā)生變化,都將實(shí)時(shí)通知其他池化器。這樣保證了所有池化器信息的一致性。
[0045]請(qǐng)參閱圖4所示,其顯示通過(guò)本發(fā)明的池化器構(gòu)建一個(gè)無(wú)瓶頸的負(fù)載均衡系統(tǒng)的流程圖,如圖4中所示,本發(fā)明的無(wú)瓶頸負(fù)載均衡服務(wù)器系統(tǒng)的構(gòu)建,其實(shí)現(xiàn)步驟如下:
[0046]步驟S1:建立服務(wù)器池,并為提供相同服務(wù)的服務(wù)器組成的服務(wù)器池命名,即池名,池名是服務(wù)器池唯一的標(biāo)識(shí)名,是由若干個(gè)從a到z的26個(gè)拉丁字母及O到9的10個(gè)阿拉伯?dāng)?shù)字及以及”符號(hào)構(gòu)成的并按一定的層次和邏輯排列,命名方法與域名(DomainName)是一致的。池名不能重復(fù),具有相同服務(wù)的多臺(tái)服務(wù)器擁有同一個(gè)池名。
[0047]步驟S2:服務(wù)登記(registration):服務(wù)啟動(dòng)時(shí),服務(wù)器需在池化器處進(jìn)行登記,登記時(shí)要提供相關(guān)的系統(tǒng)信息,包括:池名,唯一的服務(wù)識(shí)別號(hào)、服務(wù)器IP地址、月艮務(wù)端口、服務(wù)協(xié)議、服務(wù)檢測(cè)、均衡策略等。服務(wù)登記的過(guò)程是通過(guò)向池化器發(fā)送登記(registration)消息,到服務(wù)器收到池化器發(fā)回來(lái)的registration_response消息而完成,registration消息中包含了服務(wù)相關(guān)的池名信息和服務(wù)信息。請(qǐng)參閱圖5至圖7所示,其分別顯示了本發(fā)明的登記消息格式示意圖、本發(fā)明的登記消息格式中池名參數(shù)格式示意圖、本發(fā)明的登記消息格式中服務(wù)器參數(shù)格式示意圖。以及請(qǐng)參閱圖8所示,其顯示了本發(fā)明的登記回應(yīng)消息格式示意圖。
[0048]步驟S3:服務(wù)器信息同步:池化器收到登記消息后,將對(duì)其按照池名進(jìn)行歸類,保存在其內(nèi)部的服務(wù)器列表(Server List)之中,同時(shí)發(fā)布服務(wù)器更新消息(SerVer_Update)給其他池化器,將該服務(wù)登記信息同步到其他服務(wù)器里,從而保證所有池化器中的server List都是一致的。[0049]步驟S4:服務(wù)器狀態(tài)監(jiān)控:池化器每隔一個(gè)時(shí)間段會(huì)對(duì)其主管服務(wù)器進(jìn)行監(jiān)控檢查,一旦發(fā)現(xiàn)有服務(wù)器發(fā)生故障,立刻從其保持的服務(wù)器列表(Server List)中刪除該服務(wù)器,同時(shí)發(fā)送服務(wù)器更新消息給其他池化器,其他池化器接到該消息后,也同時(shí)從自己的服務(wù)器列表中刪除該服務(wù)器。
[0050]步驟S5:池名解析:用戶訪問(wèn)服務(wù)器池之前,必須向池化器發(fā)送池名解析請(qǐng)求,池化器根據(jù)自身保持的服務(wù)器列表,并按照服務(wù)器池的均衡策略為用戶選擇一臺(tái)被認(rèn)為最佳的服務(wù)器IP,將結(jié)果返回給用戶;
[0051]步驟S6:用戶訪問(wèn)服務(wù)器:根據(jù)池名解析的結(jié)果,用戶直接與服務(wù)器建立連接,按照均衡策略,不同的用戶通過(guò)池名解析,會(huì)獲得不同的服務(wù)器IP,這樣用戶的訪問(wèn)量就被分配到不同的服務(wù)器上。
[0052]其中前述服務(wù)器狀態(tài)監(jiān)控的步驟中服務(wù)器健康檢查采用以下方式進(jìn)行:
[0053]方法一:向服務(wù)器發(fā)送持續(xù)活動(dòng)消息(Keep_AliVe),如果收到持續(xù)活動(dòng)確認(rèn)消息(Keep_Alive_Ack)則表明服務(wù)器正常;
[0054]方法二:池化器主動(dòng)探測(cè)服務(wù)器IP及端口,主動(dòng)創(chuàng)建服務(wù)器TCP連接,連接成功則表明服務(wù)器正常;
[0055]方法三:主動(dòng)探測(cè)服務(wù)協(xié)議,池化器向服務(wù)器依照用戶所使用的服務(wù)協(xié)議發(fā)送特定的協(xié)議,然后根據(jù)服務(wù)器的回答來(lái)判斷服務(wù)器的狀況。
[0056]其中方法一的具體的過(guò)程為:池化器每隔一個(gè)固定的時(shí)間間隔向該服務(wù)器發(fā)送持續(xù)活動(dòng)消息Keep_Alive。請(qǐng)參閱圖9和圖10所示,其分別顯示本發(fā)明的一個(gè)實(shí)施例中保持活動(dòng)消息的格式和保持活動(dòng)消息中系統(tǒng)參數(shù)描述的格式。
[0057]服務(wù)器接到持續(xù)活動(dòng)消息Keep_Alive后,立刻以持續(xù)活動(dòng)確認(rèn)消息Keep_Alive_Ack回復(fù)給池化器。請(qǐng)參閱圖11所示,其顯示本發(fā)明的持續(xù)活動(dòng)確認(rèn)消息的格式。在持續(xù)活動(dòng)確認(rèn)消息Keep_Alive_Ack中服務(wù)器附帶了自身的相關(guān)狀態(tài)信息(比如:CPU使用率、網(wǎng)絡(luò)使用率、內(nèi)存使用率、硬盤(pán)使用率等)。這樣池化器可以知曉服務(wù)器的實(shí)時(shí)系統(tǒng)狀況,并可以參照作為依據(jù)判斷服務(wù)器的狀況。在一些情況下,雖然服務(wù)器運(yùn)行都正常,但由于資源近乎消耗殆盡,例如CPU使用率、網(wǎng)絡(luò)使用率、內(nèi)存使用率、硬盤(pán)使用率等超過(guò)預(yù)定值,繼續(xù)運(yùn)行可能導(dǎo)致更大的問(wèn)題,這種情況,池化器可提前預(yù)知,可將該服務(wù)器設(shè)置為故障服務(wù)器。
[0058]如果池化器發(fā)出的持續(xù)活動(dòng)消息Keep_Alive,在設(shè)定時(shí)間(timeout)內(nèi)沒(méi)有收到持續(xù)活動(dòng)確認(rèn)消息Keep_Alive_Ack,則迅速連續(xù)發(fā)送幾個(gè)持續(xù)活動(dòng)消息Keep_Alive,如果仍然沒(méi)有收到持續(xù)活動(dòng)確認(rèn)消息Keep_Alive_Ack,則可以判定服務(wù)器發(fā)生故障,這種故障可能有多種可能:服務(wù)器宕機(jī)、軟件故障、網(wǎng)絡(luò)故障等,總之在這種情況下,用戶肯定是無(wú)法使用該服務(wù)器的服務(wù)。
[0059]其中方法三的具體過(guò)程為:由于服務(wù)器在登記時(shí),提供其自身服務(wù)的相關(guān)信息,比如:服務(wù)協(xié)議、IP地址、端口號(hào)、以及是否進(jìn)行服務(wù)檢測(cè)等信息,如果服務(wù)器需要進(jìn)行服務(wù)檢測(cè)(見(jiàn)圖7中服務(wù)器參數(shù)Server Parameter,服務(wù)檢測(cè)Oxl為開(kāi),0x0為關(guān)),池化器根據(jù)這些信息,對(duì)該服務(wù)器進(jìn)行周期性的服務(wù)可用性探測(cè),方法是向指定的IP和端口按照其服務(wù)協(xié)議發(fā)送探測(cè)消息,然后通過(guò)服務(wù)器的回應(yīng)判斷其服務(wù)正常與否。
[0060]這里通過(guò)一個(gè)實(shí)例說(shuō)明池化器如何通過(guò)服務(wù)器參數(shù)進(jìn)行服務(wù)可用性探測(cè):假設(shè)服務(wù)器A在登記時(shí)提供的信息為:
【權(quán)利要求】
1.一種構(gòu)建網(wǎng)絡(luò)服務(wù)器池的池化器,其負(fù)責(zé)將多臺(tái)服務(wù)器組成一個(gè)虛擬的服務(wù)器池,并對(duì)各臺(tái)服務(wù)器的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控和采集;同時(shí)提供池名解析功能,以便能讓用戶方便地訪問(wèn)服務(wù)器; 其中所述池化器包括: 池化器的登記/注銷功能模塊:服務(wù)器在加入服務(wù)器池前需要主動(dòng)在池化器處進(jìn)行登記,登記時(shí)需提供服務(wù)器的相關(guān)系統(tǒng)信息,包括:服務(wù)器IP地址、服務(wù)端口號(hào)、服務(wù)協(xié)議、池名信息;池化器接收到服務(wù)器的登記請(qǐng)求后,要對(duì)該服務(wù)器信息進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),將該服務(wù)器登記在一個(gè)服務(wù)器列表,并歸納整理,服務(wù)器在退出服務(wù)器池之前,需要在池化器處辦理注銷手續(xù),池化器隨即將該服務(wù)器信息從服務(wù)器列表中刪除; 池化器的故障檢測(cè)與管理功能模塊:在服務(wù)器池系統(tǒng)內(nèi),池化器根據(jù)服務(wù)器的登記信息負(fù)責(zé)對(duì)服務(wù)器進(jìn)行周期性的健康狀況檢查,一旦發(fā)現(xiàn)服務(wù)器故障,池化器立刻將該服務(wù)器從服務(wù)器池中刪除掉,以保證服務(wù)器池中所有服務(wù)器都是有效的、可用的; 池化器的信息采集功能模塊:池化器周期性對(duì)池中所有服務(wù)器進(jìn)行系統(tǒng)信息采集,包括:CPU、內(nèi)存、網(wǎng)絡(luò)使用情況之類的系統(tǒng)相關(guān)信息的采集,并對(duì)該系統(tǒng)信息進(jìn)行整理,為服務(wù)器選擇策略提供依據(jù); 池化器的服務(wù)器選擇功能模塊:根據(jù)池化器對(duì)各服務(wù)器池中服務(wù)器的監(jiān)控、信息采集等相關(guān)信息,按照服務(wù)器的選擇策略,始終優(yōu)先選擇資源狀況最優(yōu)的服務(wù)器,為池名解析提供依據(jù),以保證在任何時(shí)候針對(duì)任何用戶都能獲得到實(shí)時(shí)最優(yōu)的服務(wù)器資源; 池化器的池名解析功能模塊:客戶端訪問(wèn)服務(wù)器池,先在池化器處做池名解析,池化器根據(jù)客戶端提交的解析請(qǐng)求,在自己的服務(wù)器列表中進(jìn)行查詢,通常每個(gè)池名都對(duì)應(yīng)著多個(gè)服務(wù)器,池化器安裝實(shí)現(xiàn)確定好的選擇策略,為該用戶選擇一個(gè)最佳的服務(wù)器IP,并將該結(jié)果以解析回應(yīng)消息的形式反饋給客戶端; 池化器信息同步功能模塊:服務(wù)器在某臺(tái)池化器進(jìn)行登記或注銷,該臺(tái)池化器都會(huì)實(shí)時(shí)將更新信息通知其他所有池化器;如果某臺(tái)池化器發(fā)現(xiàn)服務(wù)器故障,會(huì)立刻在自己所保存的服務(wù)器列表中將該服務(wù)器刪除,同時(shí)通過(guò)服務(wù)器更新消息通知其他所有池化器該服務(wù)器發(fā)生故障,其他池化器收到通知后,也立刻將該服務(wù)器從其保存的服務(wù)器列表中刪除掉;池化器采集到新的服務(wù)器系統(tǒng)信息,只要系統(tǒng)信息發(fā)生變化,都將實(shí)時(shí)通知其他池化器以保證所有池化器信息的一致性。
2.如權(quán)利要求1所述的池化器,其特征在于:其用于構(gòu)建服務(wù)器池系統(tǒng),其構(gòu)建的服務(wù)器池系統(tǒng)包括:服務(wù)器池、池化器以及客戶端,其中服務(wù)器池是由一組具有相同功能的,并被統(tǒng)一管理起來(lái)的服務(wù)器組成,每個(gè)服務(wù)器池均使用唯一的池名作為標(biāo)識(shí);客戶端包括訪問(wèn)服務(wù)器池的客戶機(jī)。
【文檔編號(hào)】H04L29/12GK103731460SQ201210392450
【公開(kāi)日】2014年4月16日 申請(qǐng)日期:2012年10月16日 優(yōu)先權(quán)日:2012年10月16日
【發(fā)明者】張焰 申請(qǐng)人:無(wú)錫云捷科技有限公司