專利名稱:服務(wù)健康度檢測系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信網(wǎng)絡(luò)服務(wù)健康度檢測技術(shù),尤其涉及一種服務(wù)健康度檢測系統(tǒng)和方法。
背景技術(shù):
隨著IP技術(shù)的發(fā)展、寬帶的普及以及網(wǎng)絡(luò)用戶的指數(shù)級增長,Internet上的網(wǎng)絡(luò)流量急速膨脹,各種Internet服務(wù)也越來越多。單臺服務(wù)器已經(jīng)無法滿足客戶需求,為了解決上述問題,通常情況下會采用一組服務(wù)器來向用戶提供服務(wù),對外提供單一接口(即這一組服務(wù)對外只提供一個IP地址進行服務(wù))。
參見圖1,圖1為現(xiàn)有技術(shù)中針對上述問題的解決方案,利用服務(wù)器負載均衡設(shè)備檢測服務(wù)器健康度RS1到RS7為一組最終提供服務(wù)的服務(wù)器,服務(wù)器負載均衡設(shè)備置于這組服務(wù)器之前,服務(wù)器負載均衡設(shè)備里有一組虛擬服務(wù)器VS1到VS3,每個虛擬服務(wù)器對應(yīng)某個服務(wù)類別,如圖中的服務(wù)類1到3,用戶服務(wù)請求到達運營商服務(wù)網(wǎng)絡(luò)后,服務(wù)請求先被傳送到服務(wù)器負載均衡設(shè)備上,服務(wù)器負載均衡設(shè)備依照用戶服務(wù)請求的類別,將服務(wù)請求分配到不同的虛擬服務(wù)器上,虛擬服務(wù)器再將服務(wù)請求轉(zhuǎn)發(fā)到相應(yīng)的后臺服務(wù)器上進行處理。在這個過程中,為了保證服務(wù)取得令用戶滿意的效果,服務(wù)器負載均衡設(shè)備需要檢查后臺服務(wù)器的健康度以避免將用戶請求分發(fā)到不能提供服務(wù)的設(shè)備上。
所謂健康度是指服務(wù)器上相關(guān)應(yīng)用服務(wù)或者主機資源的狀態(tài),其中,主機資源健康度狀態(tài)包括CPU使用率,內(nèi)存使用率,服務(wù)帶寬占用率,其他關(guān)鍵資源,如進程數(shù),線程數(shù),socket資源數(shù)等應(yīng)用服務(wù)健康度狀態(tài)包括影響用戶響應(yīng)的關(guān)鍵資源數(shù),并發(fā)處理能力,當(dāng)前消耗的資源數(shù),資源包括socket、應(yīng)用可用線程、計數(shù)器、后臺連接,內(nèi)存、硬盤等,一切可能存在瓶頸的地方;一般來說,服務(wù)器故障狀態(tài)表現(xiàn)為鏈路故障、主機故障和應(yīng)用故障(也稱為服務(wù)故障),對應(yīng)地,在服務(wù)器故障恢復(fù)時,還會有另外三個狀態(tài),即鏈路恢復(fù)狀態(tài)、主機恢復(fù)狀態(tài)和應(yīng)用(服務(wù))恢復(fù)狀態(tài),如何對這些狀態(tài)進行檢測,以保證服務(wù)的可靠,已經(jīng)成為通信業(yè)務(wù)運營商普遍關(guān)心的問題。
目前已知的檢測服務(wù)器健康度的方法有如下幾種現(xiàn)有技術(shù)方案一、利用Ethernet OAM技術(shù)進行服務(wù)器健康度檢查。
OAM是指操作(Operation)、管理(Administration)和維護(Maintenance),該技術(shù)的功能包括性能監(jiān)控并產(chǎn)生維護信息,根據(jù)這些信息評估網(wǎng)絡(luò)的穩(wěn)定性;通過定期查詢的方法檢測網(wǎng)絡(luò)故障,產(chǎn)生各種維護和告警信息;通過調(diào)度或者切換到其它的實體,旁路失效實體,保證網(wǎng)絡(luò)的正常運行;將故障信息傳遞給管理實體。
Ethernet OAM提供二層端到端的監(jiān)控和檢測,可以對通過二層交換設(shè)備進行服務(wù)器連接的鏈路狀態(tài)進行檢測。但是由于該技術(shù)只能檢測鏈路狀態(tài),不能檢測服務(wù)器主機狀態(tài)并對外圍設(shè)備存在很大的依賴性,不利于應(yīng)用。
現(xiàn)有技術(shù)方案二、用ping方法進行監(jiān)控度檢查。
用ping方法進行監(jiān)控度檢查是一種常用的服務(wù)器檢測方法,其實現(xiàn)方法非常簡單在設(shè)備上采用定時器定期向各指定的IP地址發(fā)送ping報文,并且檢測有無回應(yīng),如果有回應(yīng)則說明服務(wù)器為健康的,否則就表明服務(wù)器已經(jīng)失效。
該方法雖然有實現(xiàn)方法簡單、技術(shù)擴展性好等優(yōu)點,但是有可能被主機屏蔽,同時頻繁的ping容易被識別為攻擊報文且需要在前置設(shè)備上啟動相關(guān)的ping服務(wù),需要在安全路由器上和主機上配置IP地址,可能會與監(jiān)控網(wǎng)絡(luò)沖突。
現(xiàn)有技術(shù)方案三、利用arp(地址解析協(xié)議)方法進行健康度檢查。
利用arp方法進行監(jiān)控度檢查是一種常用的方法,其實現(xiàn)方法如下在設(shè)備上采用定時器定期向各指定的IP地址發(fā)送arp報文進行地址請求,并且檢測arp回應(yīng)報文,如果有回應(yīng)則說明服務(wù)器為健康的,否則就表明服務(wù)器失效。
該方法具有實現(xiàn)方法簡單、被攻擊的風(fēng)險很小等優(yōu)點。但是只能應(yīng)用于二層網(wǎng)絡(luò)組網(wǎng),擴展性不好;只能提供主機狀態(tài)檢測,不能提供服務(wù)狀態(tài)檢測;可能會與監(jiān)控網(wǎng)絡(luò)沖突。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種服務(wù)健康度檢測方法,用來實現(xiàn)對服務(wù)器全方位的健康度檢測,以提高業(yè)務(wù)處理的可靠性,增加用戶滿意度。
本發(fā)明的另一目的在于提供一種服務(wù)健康度檢測系統(tǒng),用來實現(xiàn)對服務(wù)器全方位的健康度檢測,以提高業(yè)務(wù)處理的可靠性,增加用戶滿意度。
為達到上述目的,本發(fā)明是這樣實現(xiàn)的本發(fā)明公開了一種服務(wù)健康度檢測系統(tǒng),包括前置設(shè)備和多個宿主主機,其中宿主主機,用于向用戶提供服務(wù);前置設(shè)備,用于獲得宿主主機的服務(wù)狀態(tài)及主機狀態(tài),根據(jù)獲得的狀態(tài)判斷宿主主機的健康度并向宿主主機分配服務(wù)。
所述前置設(shè)備與所述多個宿主主機分別連接,并對其進行健康度檢測。
所述前置設(shè)備進一步包括查詢端,用于向所述宿主主機發(fā)起查詢請求。
所述查詢請求包括服務(wù)狀態(tài)查詢請求和主機狀態(tài)查詢請求。
前置設(shè)備的所述查詢端還進一步包括查詢客戶端和查詢代理,其中,查詢客戶端,用于獲得宿主主機的主機狀態(tài)和服務(wù)狀態(tài);
查詢代理,用于透傳查詢客戶端發(fā)起的查詢請求及對查詢客戶端的信息進行封裝和解析。
所述宿主主機進一步包括查詢代理和服務(wù)響應(yīng)端,其中,查詢代理,用于發(fā)起、響應(yīng)以及轉(zhuǎn)發(fā)來自前置設(shè)備的服務(wù)狀態(tài)或主機狀態(tài)查詢請求,并轉(zhuǎn)發(fā)宿主主機的主機狀態(tài)和服務(wù)狀態(tài)給前置設(shè)備;服務(wù)響應(yīng)端,用于向用戶提供服務(wù),并響應(yīng)查詢代理發(fā)起的服務(wù)狀態(tài)查詢請求。
所述宿主主機還包括一個存儲模塊,用于存儲宿主主機的主機狀態(tài)和服務(wù)狀態(tài)。
本發(fā)明還供來了一種服務(wù)健康度檢測方法,包括A、前置設(shè)備向宿主主機發(fā)出健康度查詢請求;B、宿主主機根據(jù)查詢請求的類型獲取相應(yīng)健康度信息;C、宿主主機向前置設(shè)備發(fā)送健康度查詢響應(yīng)。
所述步驟B進一步包括B1、宿主主機查詢代理判斷查詢請求的類型,如果查詢請求類型為即時服務(wù)狀態(tài),執(zhí)行步驟B2;如果查詢請求類型為緩存的服務(wù)狀態(tài)或主機狀態(tài),執(zhí)行步驟B3;B2、查詢代理向服務(wù)響應(yīng)端發(fā)起查詢即時服務(wù)狀態(tài)請求,服務(wù)響應(yīng)端向查詢代理反饋相應(yīng)的服務(wù)狀態(tài)信息;B3、查詢代理讀取本地緩存的服務(wù)狀態(tài)或查詢主機狀態(tài),得到相應(yīng)的服務(wù)狀態(tài)或主機狀態(tài)信息。
并且所述步驟B2還包括,若在設(shè)定條件下查詢代理沒有收到服務(wù)響應(yīng)端的即時服務(wù)狀態(tài)信息,則確定該服務(wù)已經(jīng)失效。
所述步驟B3還包括,若在設(shè)定條件下查詢代理不能讀取本地緩存的服務(wù)狀態(tài),則確認本地緩存機制失效。
本方法中所述步驟C進一步包括宿主主機查詢代理向前置設(shè)備查詢端發(fā)送健康度響應(yīng)信息,所述健康度響應(yīng)信息包括宿主主機的即時服務(wù)狀態(tài)、緩存服務(wù)狀態(tài)、緩存機制狀態(tài)或主機狀態(tài)。
本發(fā)明還公開了第二種服務(wù)健康度檢測方法,包括D、前置設(shè)備查詢端進行本地查詢注冊;E、前置設(shè)備向宿主主機進行查詢服務(wù)注冊;F、宿主主機向前置設(shè)備發(fā)送注冊的服務(wù)健康度信息。
所述步驟E進一步包括E1、前置設(shè)備查詢端向宿主主機查詢代理發(fā)送查詢注冊請求;E2、宿主主機查詢代理判斷查詢注冊的類型,若為服務(wù)狀態(tài)查詢,執(zhí)行步驟E3;若為主機狀態(tài)查詢,執(zhí)行步驟E4;E3、宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端發(fā)起服務(wù)狀態(tài)查詢注冊請求,服務(wù)響應(yīng)端相應(yīng)進行服務(wù)狀態(tài)查詢注冊;E4、宿主主機查詢代理完成主機狀態(tài)查詢注冊。
所述步驟F進一步包括F1、前置設(shè)備判斷宿主主機上的查詢服務(wù)是否注冊成功;F2、前置設(shè)備判斷宿主主機查詢代理健康度;F3、若查詢服務(wù)注冊成功,且宿主主機查詢代理健康度良好,則宿主主機向前置設(shè)備報告注冊服務(wù)所獲取的服務(wù)狀態(tài)和主機狀態(tài)。
本發(fā)明還公開了第三種服務(wù)健康度檢測方法,包括G、前置設(shè)備查詢端進行本地查詢注冊;H、前置設(shè)備向宿主主機進行查詢服務(wù)注冊;I、宿主主機向前置設(shè)備發(fā)送注冊的服務(wù)健康度信息;J、前置設(shè)備主動對宿主主機發(fā)起服務(wù)狀態(tài)查詢或者主機狀態(tài)查詢。
所述步驟H進一步包括H1、前置設(shè)備查詢端向宿主主機查詢代理發(fā)送查詢注冊請求;H2、宿主主機查詢代理判斷查詢注冊的類型,若為服務(wù)狀態(tài)查詢,執(zhí)行步驟E3;若為主機狀態(tài)查詢,執(zhí)行步驟E4;H3、宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端發(fā)起服務(wù)狀態(tài)查詢注冊請求,服務(wù)響應(yīng)端相應(yīng)進行服務(wù)狀態(tài)查詢注冊;H4、宿主主機查詢代理完成主機狀態(tài)查詢注冊。
所述步驟I進一步包括I1、前置設(shè)備判斷宿主主機上的查詢服務(wù)是否注冊成功;I2、前置設(shè)備判斷宿主主機查詢代理健康度;I3、若查詢服務(wù)注冊成功,且宿主主機查詢代理健康度良好,則宿主主機向前置設(shè)備報告注冊服務(wù)所獲取的服務(wù)狀態(tài)和主機狀態(tài)。
所述步驟J進一步包括以下步驟J1、前置設(shè)備向宿主主機發(fā)出健康度查詢請求;J2、宿主主機根據(jù)查詢請求的類型獲取相應(yīng)的健康度信息;J3、宿主主機向前置設(shè)備發(fā)送健康度查詢響應(yīng)。
所述宿主主機根據(jù)查詢請求的類型獲取相應(yīng)的健康度信息的步驟進一步包括宿主主機查詢代理判斷前置設(shè)備的查詢請求是否注冊;若該查詢請求已經(jīng)注冊,宿主主機查詢代理回調(diào)注冊的函數(shù)獲取服務(wù)狀態(tài)或者主機狀態(tài)信息;若該查詢請求并沒有注冊并且請求查詢的是即時服務(wù)狀態(tài),則宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端發(fā)送查詢即時服務(wù)狀態(tài)的請求;若該查詢請求并沒有注冊并且請求查詢的是緩存的服務(wù)狀態(tài)或者主機狀態(tài),宿主主機查詢代理獲取緩存的服務(wù)狀態(tài)或者主機狀態(tài)。
總之,本發(fā)明提供了一種能夠?qū)λ拗髦鳈C上相關(guān)服務(wù)的健康度進行全面檢查的系統(tǒng),同時還提供了三種服務(wù)健康度檢測方法,這三種方法的結(jié)合,能夠?qū)崿F(xiàn)相關(guān)服務(wù)的全面健康度檢查。本發(fā)明通過對相關(guān)資源項的檢查獲得相關(guān)服務(wù)的確切狀態(tài),為前置設(shè)備選擇后臺宿主主機并分配服務(wù)提供充分依據(jù),特別是對于那種只收不發(fā)的服務(wù)提供了一種完整的健康度檢查方法和方案,達到了提高業(yè)務(wù)處理的可靠性、增加用戶滿意度的效果。
圖1為現(xiàn)有技術(shù)中利用服務(wù)器負載均衡設(shè)備檢測服務(wù)器健康度的系統(tǒng)示意圖;圖2為本發(fā)明實施例中服務(wù)健康度檢測系統(tǒng)的示意圖;圖3為本發(fā)明實施例中查詢-響應(yīng)健康度檢測方法的流程圖;圖4為本發(fā)明實施例中注冊-通知健康度檢測方法的流程圖;圖5為本發(fā)明實施例中注冊-查詢健康度檢測方法的流程圖。
具體實施例方式
下面結(jié)合附圖及具體實施例對本發(fā)明進行詳細說明。
本發(fā)明所提供的服務(wù)健康度檢測系統(tǒng),包括用戶設(shè)備、運營商服務(wù)網(wǎng)絡(luò)和運營商服務(wù)設(shè)備,用戶設(shè)備的服務(wù)請求傳送到運營商服務(wù)網(wǎng)絡(luò)后、運營商服務(wù)設(shè)備中的前置設(shè)備對宿主主機進行服務(wù)健康度檢查,并將服務(wù)分配到健康度良好的宿主主機上,通過這種方法,運營商服務(wù)網(wǎng)絡(luò)能夠向用戶提供較好的服務(wù)響應(yīng)。通過本系統(tǒng),可以實現(xiàn)對宿主主機的主機狀態(tài)和服務(wù)狀態(tài)的無遺漏檢測,保證前置設(shè)備在分配服務(wù)的時候不會將用戶服務(wù)請求分配到不能提供服務(wù)的宿主主機上,同時還可以在前置設(shè)備和宿主主機間實現(xiàn)不同頻度的服務(wù)健康度檢測,達到提高檢測效率、節(jié)省系統(tǒng)資源的目的。
本發(fā)明所提供的服務(wù)健康度檢測方法,由包含查詢端的前置設(shè)備向包含查詢代理和服務(wù)響應(yīng)端的宿主主機發(fā)起健康度查詢請求,查詢宿主主機的主機狀態(tài)和服務(wù)狀態(tài),宿主主機向前置設(shè)備發(fā)送服務(wù)狀態(tài)和主機狀態(tài)響應(yīng)。通過本方法,可以實現(xiàn)對宿主主機的主機狀態(tài)和服務(wù)狀態(tài)的無遺漏檢測,保證前置設(shè)備在分配服務(wù)的時候不會將用戶請求分配到不能提供服務(wù)的宿主主機上,同時還可以在前置設(shè)備和宿主主機間實現(xiàn)不同頻度的服務(wù)健康度檢測,達到提高檢測效率、節(jié)省系統(tǒng)資源的目的。本發(fā)明實施例提供了三種具體實現(xiàn)方法查詢-響應(yīng)方法,注冊-通知方法和注冊-查詢方法。
上述方法和系統(tǒng)中的主機狀態(tài)即主機健康度狀態(tài)包括CPU使用率、內(nèi)存使用率、服務(wù)帶寬占用率、進程數(shù)、線程數(shù)、socket資源數(shù)等關(guān)鍵資源的狀態(tài);服務(wù)狀態(tài)即服務(wù)健康度狀態(tài)包括并發(fā)處理能力、當(dāng)前消耗的資源數(shù)、socket資源數(shù)、應(yīng)用可用線程、計數(shù)器、后臺連接,內(nèi)存、硬盤、會話數(shù)、nat地址數(shù)等其他應(yīng)用表項資源的狀態(tài)。
參見圖2,為本發(fā)明的服務(wù)健康度檢測系統(tǒng)的示意圖。該系統(tǒng)包括用戶、運營商服務(wù)網(wǎng)絡(luò)和運營商服務(wù)設(shè)備。其中,運營商服務(wù)設(shè)備包括了前置設(shè)備和宿主主機。其中,前置設(shè)備用于檢測宿主主機的服務(wù)健康度。前置設(shè)備上設(shè)置了查詢端;查詢端,是前置設(shè)備上的查詢客戶端和查詢代理的總稱,用于向宿主主機發(fā)起查詢請求;查詢客戶端,也可以稱為查詢請求發(fā)起端,指需要獲得服務(wù)器狀態(tài)的前置設(shè)備上的特定應(yīng)用;查詢代理,工作在前置設(shè)備上的一個健康度檢查服務(wù),用于透傳查詢客戶端發(fā)起的查詢請求及對查詢客戶端的信息提供封裝和解析服務(wù)。
宿主主機用于向用戶提供服務(wù),宿主主機上設(shè)置了查詢代理、服務(wù)響應(yīng)端及存儲模塊。其中,查詢代理,工作在宿主主機上的一個健康度檢查服務(wù),用于發(fā)起,響應(yīng),以及轉(zhuǎn)發(fā)來自前置設(shè)備的查詢請求,通過查詢代理可以實現(xiàn)迭代方法的查詢,即一個服務(wù)健康度檢查的響應(yīng)端同時又是另外一個服務(wù)健康度查詢的查詢端,同時查詢代理可以提供響應(yīng)端的宿主主機狀態(tài);服務(wù)響應(yīng)端,被查詢的在宿主主機上的應(yīng)用服務(wù),需要反饋相關(guān)服務(wù)的健康度。
存儲模塊,用于緩存服務(wù)狀態(tài)和主機狀態(tài)。
在圖2所示的系統(tǒng)中,用戶向運營商服務(wù)網(wǎng)絡(luò)發(fā)起服務(wù)請求,運營商服務(wù)網(wǎng)絡(luò)接收到用戶的服務(wù)請求后,將該請求發(fā)送給前置設(shè)備,前置設(shè)備通過查詢端檢測所連接的一組宿主主機的主機狀態(tài)和服務(wù)狀態(tài)或者讀取宿主主機上存儲的本機的主機狀態(tài)和服務(wù)狀態(tài),然后把服務(wù)請求依照事先確定的規(guī)則分配給健康度良好的宿主主機。
同時需要說明的是,本系統(tǒng)中所指的用戶,不是一般意義上的個人或者組織,而是包括所有向運營商發(fā)起服務(wù)請求的機制,可以是個人,也可以是某個中間設(shè)備或終端等。本系統(tǒng)中所指的運營商,也不僅僅是指一般意義上的運營商,還包括了所有提供某種應(yīng)用的個人、組織、中間設(shè)備及終端等。
此外,本系統(tǒng)中提出前置設(shè)備的查詢端包括了查詢客戶端和查詢代理,宿主主機上包括了查詢代理和服務(wù)響應(yīng)端,但本發(fā)明的構(gòu)思不限于此,任何將這些功能進行重新組合或者分割的行為,都在本發(fā)明的構(gòu)思之內(nèi)。
本發(fā)明公開的第一種服務(wù)健康度檢測方法是基于查詢-響應(yīng)方法的。前置設(shè)備向宿主主機發(fā)出健康度查詢請求,宿主主機向前置設(shè)備發(fā)送健康度查詢響應(yīng)。該具體實現(xiàn)方法又包括三種操作前置設(shè)備查詢宿主主機上的即時服務(wù)狀態(tài)、前置設(shè)備查詢宿主主機上緩存的服務(wù)狀態(tài)和前置設(shè)備查詢宿主主機的狀態(tài)。這樣可以在前置設(shè)備和宿主主機間實現(xiàn)不同頻度的服務(wù)健康度查詢,即查詢端—宿主主機上查詢代理可以是高頻度的查詢和響應(yīng),而宿主—服務(wù)是低頻度的查詢和響應(yīng)。下面將結(jié)合附圖予以說明。
圖3示出了本發(fā)明實施例中基于查詢-響應(yīng)方法的健康度檢測方法流程圖,包括如下步驟301、前置設(shè)備查詢端向宿主主機查詢代理發(fā)起健康度查詢請求,這種查詢既可以是即時服務(wù)狀態(tài)或主機狀態(tài),還可以是宿主主機上依照特定條件緩存的服務(wù)狀態(tài)或主機狀態(tài);302、宿主主機查詢代理收到上述健康度查詢請求后,判斷請求的類型,如果請求查詢的是即時服務(wù)狀態(tài),執(zhí)行步驟303;如果請求查詢的是宿主主機上緩存的服務(wù)狀態(tài)或者主機狀態(tài),執(zhí)行步驟306;303、宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端發(fā)起查詢即時服務(wù)狀態(tài)的查詢請求;304、宿主主機服務(wù)響應(yīng)端向宿主主機查詢代理反饋即時服務(wù)狀態(tài);305、宿主主機查詢代理收到步驟304中服務(wù)響應(yīng)端的即時服務(wù)狀態(tài)信息后,將該信息轉(zhuǎn)發(fā)給前置設(shè)備查詢端;306、宿主主機查詢代理若收到查詢本地緩存的服務(wù)狀態(tài)及主機狀態(tài)或者即時主機狀態(tài)的健康度查詢請求后,從存儲模塊讀取本地緩存的服務(wù)狀態(tài)或主機狀態(tài),或者獲取即時主機狀態(tài);307、宿主主機查詢代理向前置設(shè)備查詢端發(fā)送步驟306中獲得的緩存的服務(wù)狀態(tài)或者主機狀態(tài)。
通過本方法,可以實現(xiàn)不同頻度的服務(wù)狀態(tài)查詢,對于那些性能要求比較高的服務(wù)或者主機資源,可以隨時進行查詢,而對于那些性能要求不是太高的服務(wù)或者主機資源,就可以設(shè)定隔一定周期將狀態(tài)緩存在宿主主機的存儲模塊上,需要查詢的時候,只要讀取這些已經(jīng)存儲的信息就可以了。對于緩存的主機狀態(tài)或者服務(wù)狀態(tài),可以規(guī)定,只要獲得的緩存服務(wù)狀態(tài)或者主機狀態(tài)是健康的,就可以判定該服務(wù)或者主機資源是健康可用的。
本發(fā)明公開的另一種服務(wù)健康度檢測方法是基于注冊-通知方法的。首先,前置設(shè)備在宿主主機上注冊需要查詢的服務(wù),注冊完成后,宿主主機查詢代理定期向前置設(shè)備發(fā)送所注冊的服務(wù)狀態(tài)信息。因此,只要宿主主機查詢代理是健康的,前置設(shè)備就不用頻繁進行宿主主機服務(wù)狀態(tài)查詢。這種方法包括了服務(wù)注冊、查詢代理健康度查詢和宿主主機狀態(tài)查詢等步驟。下面將進行詳細說明。
圖4為本發(fā)明實施例中基于注冊-通知方法的服務(wù)健康度檢測方法流程圖,具體步驟包括401、前置設(shè)備查詢端完成本地查詢服務(wù)注冊,這種設(shè)置是為了查詢前置設(shè)備本地的健康度,查詢內(nèi)容同樣包括服務(wù)狀態(tài)和主機狀態(tài);402、前置設(shè)備查詢端向宿主主機查詢代理請求進行查詢服務(wù)注冊;
403、宿主主機查詢代理收到前述查詢服務(wù)注冊請求后,判斷要求進行查詢注冊的服務(wù)的類型,如果是要注冊的是即時服務(wù)狀態(tài),執(zhí)行步驟404;如果要注冊的是宿主主機上緩存的服務(wù)狀態(tài)或者主機狀態(tài),執(zhí)行步驟407;404、宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端請求進行即時服務(wù)狀態(tài)查詢注冊;405、宿主主機服務(wù)響應(yīng)端受到上述注冊請求后,完成即時服務(wù)狀態(tài)查詢注冊,并依照注冊條件向宿主主機查詢代理反饋即時服務(wù)狀態(tài);406、宿主主機查詢代理向前置設(shè)備查詢端通知步驟405所獲取的即時服務(wù)狀態(tài);407、宿主主機查詢代理進行本地緩存的服務(wù)狀態(tài)及主機狀態(tài)查詢注冊;408、宿主主機查詢代理依照注冊條件向前置設(shè)備查詢端通知步驟407中所獲取的緩存服務(wù)狀態(tài)或者主機狀態(tài)。
在上述過程中,還可以包括以下內(nèi)容前置設(shè)備向宿主主機請求查詢服務(wù)注冊后,向宿主主機查詢代理發(fā)送查詢所述查詢服務(wù)是否注冊成功的消息,如果查詢服務(wù)注冊成功,前置設(shè)備查詢端不再進行其他操作,如果查詢服務(wù)注冊失敗,可再次發(fā)起查詢服務(wù)注冊請求;前置設(shè)備查詢端向宿主主機查詢代理發(fā)出代理健康度查詢請求,如果前置設(shè)備收到宿主主機查詢代理的查詢響應(yīng),則認為宿主主機查詢代理是健康的,否則,判斷宿主主機查詢代理已經(jīng)失效,進而判斷宿主主機失效。
需要說明的是,在本方法中,既可以設(shè)定宿主主機如前所述依照一定的時間周期向前置設(shè)備發(fā)送注冊服務(wù)的狀態(tài)或者主機狀態(tài),也可以設(shè)定宿主主機只有當(dāng)主機狀態(tài)發(fā)生變化或者所注冊的服務(wù)狀態(tài)變化時才向前置設(shè)備發(fā)送狀態(tài)變化信息。具體包括
宿主主機發(fā)生主機狀態(tài)變化時,宿主主機查詢代理向前置設(shè)備查詢端發(fā)送主機狀態(tài)變化消息,前置設(shè)備查詢端在收到上述狀態(tài)變化消息后,向宿主主機查詢代理發(fā)送狀態(tài)變化響應(yīng);宿主主機發(fā)生服務(wù)狀態(tài)變化時,宿主主機服務(wù)響應(yīng)端向前置設(shè)備查詢端發(fā)送服務(wù)狀態(tài)變化消息,前置設(shè)備查詢端在收到上述狀態(tài)變化消息后,向宿主主機服務(wù)響應(yīng)端發(fā)送狀態(tài)變化響應(yīng)。
本發(fā)明還公開了一種基于注冊-查詢方法的服務(wù)健康度檢測方法。在本方法中,所涉及的服務(wù)注冊方法與上述注冊-通知方法中的注冊方法完全相同。所不同的是,本方法中,前置設(shè)備不僅僅被動地等待宿主主機發(fā)送注冊的服務(wù)狀態(tài)或者宿主主機狀態(tài),還可以設(shè)置一定條件,在滿足設(shè)定條件或者發(fā)生臨時需求時,前置設(shè)備主動對宿主主機的主機狀態(tài)和服務(wù)狀態(tài)進行查詢。下面將對本方法進行具體說明。
圖5示出了本發(fā)明實施例中基于注冊-查詢方法的服務(wù)健康度檢測方法的流程圖,具體包括501、前置設(shè)備查詢端完成本地查詢服務(wù)注冊,這種設(shè)置是為了查詢前置設(shè)備本地的健康度,查詢內(nèi)容同樣包括服務(wù)狀態(tài)和主機狀態(tài);502、前置設(shè)備查詢端向宿主主機查詢代理請求進行查詢服務(wù)注冊;503、宿主主機查詢代理收到前述查詢服務(wù)注冊請求后,判斷要求進行查詢注冊的服務(wù)的類型,如果是要注冊的是即時服務(wù)狀態(tài),執(zhí)行步驟504;如果要注冊的是宿主主機上緩存的服務(wù)狀態(tài)或者主機狀態(tài),執(zhí)行步驟507;504、宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端請求進行即時服務(wù)狀態(tài)查詢注冊;505、宿主主機服務(wù)響應(yīng)端受到上述注冊請求后,完成即時服務(wù)狀態(tài)查詢注冊,并依照注冊條件向宿主主機查詢代理反饋即時服務(wù)狀態(tài);506、宿主主機查詢代理向前置設(shè)備查詢端通知步驟505所獲取的即時服務(wù)狀態(tài);
507、宿主主機查詢代理進行本地緩存的服務(wù)狀態(tài)及主機狀態(tài)查詢注冊;508、宿主主機查詢代理依照注冊條件向前置設(shè)備查詢端通知步驟507中所獲取的緩存服務(wù)狀態(tài)或者主機狀態(tài)。
以上步驟用于在常規(guī)下獲取注冊的服務(wù)狀態(tài)和主機狀態(tài),當(dāng)超過注冊時的設(shè)定條件前置設(shè)備仍沒有收到宿主主機的通知信息或者發(fā)生特定查詢需求時,本方案還可以實現(xiàn)以下步驟509、前置設(shè)備查詢端向宿主主機查詢代理發(fā)送健康度查詢請求,若經(jīng)過一段時間不能收到宿主主機查詢代理的響應(yīng),則判定宿主主機已經(jīng)失效;510、宿主主機查詢代理判斷所請求的查詢服務(wù)是否已經(jīng)注冊,若該服務(wù)已經(jīng)注冊,則執(zhí)行步驟511;若該服務(wù)并沒有注冊且查詢請求為即時服務(wù)狀態(tài),則執(zhí)行步驟513;若該服務(wù)并沒有注冊且查詢請求為宿主主機上緩存的服務(wù)狀態(tài)或者主機狀態(tài),則執(zhí)行步驟516;511、宿主主機查詢代理調(diào)用注冊的函數(shù)獲取相應(yīng)服務(wù)或者主機狀態(tài);512、宿主主機查詢代理向前置設(shè)備查詢端發(fā)送步驟511中所獲取的服務(wù)狀態(tài)信息;513、宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端請求進行即時服務(wù)狀態(tài)查詢;514、宿主主機服務(wù)響應(yīng)端向宿主主機查詢代理反饋步驟513中所述服務(wù)狀態(tài)查詢請求;515、宿主主機查詢代理向前置設(shè)備查詢端發(fā)送步驟514中所獲取的服務(wù)狀態(tài)查詢響應(yīng);516、宿主主機查詢代理獲取本地緩存的服務(wù)狀態(tài)或者主機狀態(tài);517、宿主主機查詢代理向前置設(shè)備查詢端發(fā)送步驟516中所獲取的服務(wù)狀態(tài)或者主機狀態(tài)查詢響應(yīng)。
通過以上步驟可以看出,本方法為前述查詢-響應(yīng)方法和注冊-通知方法的改進。與前述查詢-響應(yīng)方法不同的是,本方法中的主動查詢是基于一定條件的,這個條件可以根據(jù)需要隨意設(shè)定。
本發(fā)明所述方法中提出的前置設(shè)備的查詢端還可以根據(jù)需要分為查詢客戶端和查詢代理,本發(fā)明所述方法中的宿主主機上的查詢代理和服務(wù)響應(yīng)端也可以組合成一個功能模塊,任何將本發(fā)明所述功能進行重新組合或者分割的行為,都在本發(fā)明的構(gòu)思之內(nèi)。
總之,本發(fā)明所提供的服務(wù)健康度檢測系統(tǒng)能夠可靠地實現(xiàn)對宿主主機的主機狀態(tài)和服務(wù)狀態(tài)的查詢,并保證前置設(shè)備在分配服務(wù)的時候不會將用戶服務(wù)請求分配到不能提供服務(wù)的宿主主機上,同時還可以在前置設(shè)備和向連接的宿主主機上針對不同的狀態(tài)需求實現(xiàn)不同頻度的服務(wù)健康度檢測,達到提高檢測效率、節(jié)省系統(tǒng)資源的目的。
本發(fā)明所提供的服務(wù)健康度檢測方法能夠應(yīng)用于任何網(wǎng)絡(luò)技術(shù)或任何主機技術(shù)上,并可以承載在任何二層、三層、四層或應(yīng)用層協(xié)議中,也可以通過遠程過程調(diào)用(RPC)的方法獲得相關(guān)服務(wù);并可以將前置設(shè)備看成是一個大型的虛擬主機,進行迭代查詢。
以上所述實施例為本發(fā)明的較佳實施例,僅用來解釋本發(fā)明,而不能用來限定本發(fā)明的范圍,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準(zhǔn)。
權(quán)利要求
1.一種服務(wù)健康度檢測系統(tǒng),其特征在于,包括前置設(shè)備和多個宿主主機,其中宿主主機,用于向用戶提供服務(wù);前置設(shè)備,用于獲得宿主主機的服務(wù)狀態(tài)及主機狀態(tài),根據(jù)獲得的狀態(tài)判斷宿主主機的健康度并向宿主主機分配服務(wù)。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述前置設(shè)備與所述多個宿主主機分別連接,并對其進行健康度檢測。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于,所述前置設(shè)備進一步包括查詢端,用于向所述宿主主機發(fā)起查詢請求。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述查詢請求包括服務(wù)狀態(tài)查詢請求和主機狀態(tài)查詢請求。
5.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述查詢端進一步包括查詢客戶端和查詢代理,其中,查詢客戶端,用于獲得宿主主機的主機狀態(tài)和服務(wù)狀態(tài);查詢代理,用于透傳查詢客戶端發(fā)起的查詢請求及對查詢客戶端的信息進行封裝和解析。
6.如權(quán)利要求2所述的系統(tǒng),其特征在于,所述宿主主機進一步包括查詢代理和服務(wù)響應(yīng)端,其中,查詢代理,用于發(fā)起、響應(yīng)以及轉(zhuǎn)發(fā)來自前置設(shè)備的服務(wù)狀態(tài)或主機狀態(tài)查詢請求,并轉(zhuǎn)發(fā)宿主主機的主機狀態(tài)和服務(wù)狀態(tài)給前置設(shè)備;服務(wù)響應(yīng)端,用于向用戶提供服務(wù),并響應(yīng)查詢代理發(fā)起的服務(wù)狀態(tài)查詢請求。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述宿主主機還包括一個存儲模塊,用于存儲宿主主機的主機狀態(tài)和服務(wù)狀態(tài)。
8.一種服務(wù)健康度檢測方法,包括A、前置設(shè)備向宿主主機發(fā)出健康度查詢請求;B、宿主主機根據(jù)查詢請求的類型獲取相應(yīng)健康度信息;C、宿主主機向前置設(shè)備發(fā)送健康度查詢響應(yīng)。
9.如權(quán)利要求8所述的方法,其特征在于,所述步驟B進一步包括B1、宿主主機查詢代理判斷查詢請求的類型,如果查詢請求類型為即時服務(wù)狀態(tài),執(zhí)行步驟B2;如果查詢請求類型為緩存的服務(wù)狀態(tài)或主機狀態(tài),執(zhí)行步驟B3;B2、查詢代理向服務(wù)響應(yīng)端發(fā)起查詢即時服務(wù)狀態(tài)請求,服務(wù)響應(yīng)端向查詢代理反饋相應(yīng)的服務(wù)狀態(tài)信息;B3、查詢代理讀取本地緩存的服務(wù)狀態(tài)或查詢主機狀態(tài),得到相應(yīng)的服務(wù)狀態(tài)或主機狀態(tài)信息。
10.如權(quán)利要求9所述的方法,其特征在于,所述步驟B2還包括,若在設(shè)定條件下查詢代理沒有收到服務(wù)響應(yīng)端的即時服務(wù)狀態(tài)信息,則確定該服務(wù)已經(jīng)失效。
11.如權(quán)利要求9所述的方法,其特征在于,所述步驟B3還包括,若在設(shè)定條件下查詢代理不能讀取本地緩存的服務(wù)狀態(tài),則確認本地緩存機制失效。
12.如權(quán)利要求8所述的方法,其特征在于,所述步驟C進一步包括宿主主機查詢代理向前置設(shè)備查詢端發(fā)送健康度響應(yīng)信息,所述健康度響應(yīng)信息包括宿主主機的即時服務(wù)狀態(tài)、緩存服務(wù)狀態(tài)、緩存機制狀態(tài)或主機狀態(tài)。
13.一種服務(wù)健康度檢測方法,包括D、前置設(shè)備查詢端進行本地查詢注冊;E、前置設(shè)備向宿主主機進行查詢服務(wù)注冊;F、宿主主機向前置設(shè)備發(fā)送注冊的服務(wù)健康度信息。
14.如權(quán)利要求13所述的方法,其特征在于,所述步驟E進一步包括E1、前置設(shè)備查詢端向宿主主機查詢代理發(fā)送查詢注冊請求;E2、宿主主機查詢代理判斷查詢注冊的類型,若為服務(wù)狀態(tài)查詢,執(zhí)行步驟E3;若為主機狀態(tài)查詢,執(zhí)行步驟E4;E3、宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端發(fā)起服務(wù)狀態(tài)查詢注冊請求,服務(wù)響應(yīng)端相應(yīng)進行服務(wù)狀態(tài)查詢注冊;E4、宿主主機查詢代理完成主機狀態(tài)查詢注冊。
15.如權(quán)利要求13所述的方法,其特征在于,所述步驟F進一步包括F1、前置設(shè)備判斷宿主主機上的查詢服務(wù)是否注冊成功;F2、前置設(shè)備判斷宿主主機查詢代理健康度;F3、若查詢服務(wù)注冊成功,且宿主主機查詢代理健康度良好,則宿主主機向前置設(shè)備報告注冊服務(wù)所獲取的服務(wù)狀態(tài)和主機狀態(tài)。
16.一種服務(wù)健康度檢測方法,包括G、前置設(shè)備查詢端進行本地查詢注冊;H、前置設(shè)備向宿主主機進行查詢服務(wù)注冊;I、宿主主機向前置設(shè)備發(fā)送注冊的服務(wù)健康度信息;J、前置設(shè)備主動對宿主主機發(fā)起服務(wù)狀態(tài)查詢或者主機狀態(tài)查詢。
17.如權(quán)利要求16所述的方法,其特征在于,所述步驟H進一步包括H1、前置設(shè)備查詢端向宿主主機查詢代理發(fā)送查詢注冊請求;H2、宿主主機查詢代理判斷查詢注冊的類型,若為服務(wù)狀態(tài)查詢,執(zhí)行步驟E3;若為主機狀態(tài)查詢,執(zhí)行步驟E4;H3、宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端發(fā)起服務(wù)狀態(tài)查詢注冊請求,服務(wù)響應(yīng)端相應(yīng)進行服務(wù)狀態(tài)查詢注冊;H4、宿主主機查詢代理完成主機狀態(tài)查詢注冊。
18.如權(quán)利要求16所述的方法,其特征在于,所述步驟I進一步包括I1、前置設(shè)備判斷宿主主機上的查詢服務(wù)是否注冊成功;I2、前置設(shè)備判斷宿主主機查詢代理健康度;I3、若查詢服務(wù)注冊成功,且宿主主機查詢代理健康度良好,則宿主主機向前置設(shè)備報告注冊服務(wù)所獲取的服務(wù)狀態(tài)和主機狀態(tài)。
19.如權(quán)利要求16所述的方法,其特征在于,所述步驟J進一步包括以下步驟J1、前置設(shè)備向宿主主機發(fā)出健康度查詢請求;J2、宿主主機根據(jù)查詢請求的類型獲取相應(yīng)的健康度信息;J3、宿主主機向前置設(shè)備發(fā)送健康度查詢響應(yīng)。
20.如權(quán)利要求19所述的方法,其特征在于,所述宿主主機根據(jù)查詢請求的類型獲取相應(yīng)的健康度信息的步驟具體為宿主主機查詢代理判斷前置設(shè)備的查詢請求是否注冊;若該查詢請求已經(jīng)注冊,宿主主機查詢代理回調(diào)注冊的函數(shù)獲取服務(wù)狀態(tài)或者主機狀態(tài)信息;若該查詢請求并沒有注冊并且請求查詢的是即時服務(wù)狀態(tài),則宿主主機查詢代理向宿主主機服務(wù)響應(yīng)端發(fā)送查詢即時服務(wù)狀態(tài)的請求;若該查詢請求并沒有注冊并且請求查詢的是緩存的服務(wù)狀態(tài)或者主機狀態(tài),宿主主機查詢代理獲取緩存的服務(wù)狀態(tài)或者主機狀態(tài)。
全文摘要
本發(fā)明涉及服務(wù)健康度檢測技術(shù),公開了一種服務(wù)健康度檢測系統(tǒng)和方法,該系統(tǒng)包括前置設(shè)備和至少一個宿主主機,所述前置設(shè)備分別與所述宿主主機連接,并對所述宿主主機進行健康度檢測。本發(fā)明所提供的方法包括查詢-響應(yīng)方法中前置設(shè)備主動提起服務(wù)健康度查詢請求,宿主主機進行響應(yīng);注冊-通知方法中,前置設(shè)備向宿主主機注冊服務(wù),宿主主機向前置設(shè)備響應(yīng)注冊的服務(wù)狀態(tài);注冊-查詢方法中,前置設(shè)備向宿主主機注冊服務(wù),宿主主機向前置設(shè)備響應(yīng)注冊的服務(wù)狀態(tài),前置設(shè)備也主動查詢服務(wù)和宿主主機狀態(tài)。通過本發(fā)明可以實現(xiàn)對主機上任何服務(wù)的相關(guān)健康度檢查,為前置設(shè)備選擇服務(wù)主機提供充分依據(jù)。
文檔編號H04L12/24GK101043385SQ20061006115
公開日2007年9月26日 申請日期2006年6月15日 優(yōu)先權(quán)日2006年6月15日
發(fā)明者雷弈康 申請人:華為技術(shù)有限公司