專利名稱:動態(tài)維護集群中的成員服務(wù)器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集群的維護,更具體地涉及一種動態(tài)維護集群中的成員服務(wù)器的方法和系統(tǒng)。
背景技術(shù):
云計算和智能集群已經(jīng)成為當前最重要的計算架構(gòu)之一。無論是云計算中的云還 是智能集群中的集群都是由一些具有運算能力的成員構(gòu)成,這些成員的計算能力可能由單 獨的物理設(shè)備提供,也可能是基于虛擬機、虛擬化等技術(shù)運行在物理設(shè)備上的一些邏輯節(jié) 點。云計算和智能集群的特點是高度的動態(tài)性,其中一個最重要的部分是集群成員動態(tài)的 增加、刪除。傳統(tǒng)的方式,集群都是通過靜態(tài)的配置,進行成員的分配,集群的構(gòu)成靜態(tài),如 果需要增加、刪除成員需要通過重新配置集群,集群成員的變更不夠靈活。目前流行一些基 于組播和點對點技術(shù)的動態(tài)集群維護方案,涉及到的通信技術(shù)繁瑣復雜,維護和配置的復 雜性較高,對于大型的集群結(jié)構(gòu)穩(wěn)定性很難保證。集群構(gòu)成的靜態(tài)配置不能滿足高度動態(tài) 的計算環(huán)境的要求,而通過組播和點對點等技術(shù)維護的動態(tài)集群架構(gòu)過于復雜,因此需要 一種架構(gòu)更加簡單的動態(tài)集群維護方式。
發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明提出了一種動態(tài)維護集群中的成員服務(wù)器的方法,該方法 通過引入集群控制器,通過傳統(tǒng)的注冊一發(fā)現(xiàn)一綁定的機制進行集群成員的管理和維護, 其架構(gòu)簡單,實施維護方便,穩(wěn)定性能夠受到良好的監(jiān)測和控制。本發(fā)明還提出了一種動態(tài) 維護集群中的成員服務(wù)器的系統(tǒng)。根據(jù)本發(fā)明的一個方面,提供了一種動態(tài)維護集群中的成員服務(wù)器的方法,包括 集群控制器在一個公開的地址和端口上監(jiān)聽集群中的所有成員服務(wù)器的狀態(tài);集群控制器 在發(fā)現(xiàn)集群中的任一成員服務(wù)器的狀態(tài)發(fā)生改變時,修改集群拓撲結(jié)構(gòu)信息;以及集群中 的成員服務(wù)器要與其他成員服務(wù)器建立通信連接之前,通過向集群控制器查詢集群拓撲結(jié) 構(gòu)信息來得到其他成員服務(wù)器的地址和端口,以與其他成員服務(wù)器建立通信通道。優(yōu)選地,集群控制器在修改集群拓撲結(jié)構(gòu)信息之后,向集群中的所有成員服務(wù)器 發(fā)送集群成員變化的事件通知。優(yōu)選地,集群中的成員服務(wù)器在啟動或停止時向集群控制器發(fā)送集群事件;以及 集群控制器根據(jù)集群事件修改集群拓撲結(jié)構(gòu)信息,并向集群中的所有成員服務(wù)器發(fā)送集群 成員變化的事件通知。優(yōu)選地,集群中的成員服務(wù)器在接收到事件通知后,更新其本地的集群拓撲結(jié)構(gòu)
fn息ο優(yōu)選地,集群中的成員服務(wù)器在集群控制器故障時,根據(jù)本地的集群拓撲結(jié)構(gòu)信 息選擇通信通道進行通信。優(yōu)選地,集群中的成員服務(wù)器定時與故障的集群控制器進行聯(lián)系,一旦集群控制器從故障恢復時,就將成員服務(wù)器的信息注冊到集群控制器。優(yōu)選地,集群控制器在從故障恢復時,根據(jù)其記錄的集群拓撲結(jié)構(gòu)信息主動連接 集群中的各個成員服務(wù)器,并在連接成功后將各個成員服務(wù)器的信息注冊到集群控制器。優(yōu)選地,集群控制器通過成員服務(wù)器的集群管理地址和端口來監(jiān)視成員服務(wù)器的 狀態(tài)變化。根據(jù)本發(fā)明的另一方面,提供了一種動態(tài)維護集群中的成員服務(wù)器的系統(tǒng),包括 集群控制器,在一個公開的地址和端口上監(jiān)聽所述集群中的所有成員服務(wù)器的狀態(tài),在發(fā) 現(xiàn)所述集群中的任一成員服務(wù)器的狀態(tài)發(fā)生改變時,修改集群拓撲結(jié)構(gòu)信息;以及至少一 個成員服務(wù)器,位于所述集群中,在任一成員服務(wù)器要與其他成員服務(wù)器建立通信連接之 前,通過向所述集群控制器查詢所述集群拓撲結(jié)構(gòu)信息來得到所述其他成員服務(wù)器的地址 和端口,以與所述其他成員服務(wù)器建立通信通道。優(yōu)選地,集群控制器還用于在修改所述集群拓撲結(jié)構(gòu)信息之后,向所述集群中的 所有成員服務(wù)器發(fā)送集群成員變化的事件通知。優(yōu)選地,集群中的任一成員服務(wù)器在啟動或停止時向集群控制器發(fā)送集群事件; 以及集群控制器根據(jù)所述集群事件修改集群拓撲結(jié)構(gòu)信息,并向集群中的所有成員服務(wù)器 發(fā)送集群成員變化的事件通知。優(yōu)選地,集群中的成員服務(wù)器在接收到事件通知后,更新其本地的集群拓撲結(jié)構(gòu)
fn息o優(yōu)選地,集群中的成員服務(wù)器在集群控制器故障時,根據(jù)本地的集群拓撲結(jié)構(gòu)信 息選擇通信通道進行通信。優(yōu)選地,集群中的成員服務(wù)器定時與故障的集群控制器進行聯(lián)系,一旦集群控制 器從故障恢復時,就將成員服務(wù)器的信息注冊到集群控制器。優(yōu)選地,集群控制器在從故障恢復時,根據(jù)其記錄的集群拓撲結(jié)構(gòu)信息主動連接 集群中的各個成員服務(wù)器,并在連接成功后將各個成員服務(wù)器的信息注冊到集群控制器。優(yōu)選地,集群控制器通過成員服務(wù)器的集群管理地址和端口來監(jiān)視成員服務(wù)器的 狀態(tài)變化。通過采用本發(fā)明所提出的動態(tài)維護集群中的成員服務(wù)器的方法和系統(tǒng),能夠?qū)?群進行動態(tài)維護,同時因為這種動態(tài)的成員維護對應(yīng)用透明,從而保證了系統(tǒng)的可用性不 受影響。這種技術(shù)使系統(tǒng)的擴展性、可靠性、可維護性、穩(wěn)定性等方面得到了全面的提高,解 決了現(xiàn)有技術(shù)中采用靜態(tài)配置或動態(tài)維護過于復雜的問題。
圖1示出了根據(jù)本發(fā)明的動態(tài)維護集群中的成員服務(wù)器的方法的流程圖;圖2示出了根據(jù)本發(fā)明的實施例的動態(tài)維護集群中的成員服務(wù)器的系統(tǒng)的示意 圖;圖3示出了根據(jù)本發(fā)明的實施例的集群中的成員服務(wù)器之間的通信的示意圖;圖4示出了根據(jù)本發(fā)明的實施例的集群控制器故障情況下的成員服務(wù)器之間的 通信的示意圖。
具體實施例方式以下將參考附圖詳細描述本發(fā)明的具體實施例。圖1示出了根據(jù)本發(fā)明的動態(tài)維護集群中的成員服務(wù)器的方法的流程圖,如圖1 所示,該方法包括以下步驟步驟S102,集群控制器在一個公開的地址和端口上監(jiān)聽集群中的所有成員服務(wù)器 的狀態(tài);步驟S104,集群控制器在發(fā)現(xiàn)集群中的任一成員服務(wù)器的狀態(tài)發(fā)生改變時,修改 集群拓撲結(jié)構(gòu)信息;以及步驟S106,集群中的成員服務(wù)器要與其他成員服務(wù)器建立通信連接之前,通過向 集群控制器查詢集群拓撲結(jié)構(gòu)信息來得到其他成員服務(wù)器的地址和端口,以與其他成員服 務(wù)器建立通信通道。優(yōu)選地,集群控制器在修改集群拓撲結(jié)構(gòu)信息之后,向集群中的所有成員服務(wù)器 發(fā)送集群成員變化的事件通知。優(yōu)選地,集群中的成員服務(wù)器在啟動或停止時向集群控制器發(fā)送集群事件;以及 集群控制器根據(jù)集群事件修改集群拓撲結(jié)構(gòu)信息,并向集群中的所有成員服務(wù)器發(fā)送集群 成員變化的事件通知。優(yōu)選地,集群中的成員服務(wù)器在接收到事件通知后,更新其本地的集群拓撲結(jié)構(gòu)
fn息o優(yōu)選地,集群中的成員服務(wù)器在集群控制器故障時,根據(jù)本地的集群拓撲結(jié)構(gòu)信 息選擇通信通道進行通信。優(yōu)選地,集群中的成員服務(wù)器定時與故障的集群控制器進行聯(lián)系,一旦集群控制 器從故障恢復時,就將成員服務(wù)器的信息注冊到集群控制器。優(yōu)選地,集群控制器在從故障恢復時,根據(jù)其記錄的集群拓撲結(jié)構(gòu)信息主動連接 集群中的各個成員服務(wù)器,并在連接成功后將各個成員服務(wù)器的信息注冊到集群控制器。優(yōu)選地,集群控制器通過成員服務(wù)器的集群管理地址和端口來監(jiān)視成員服務(wù)器的 狀態(tài)變化。該方法通過引入集群注冊服務(wù)器,通過傳統(tǒng)的注冊一發(fā)現(xiàn)一綁定的機制進行集群 成員的管理和維護,其架構(gòu)簡單,實施維護方便,穩(wěn)定性能夠受到良好的監(jiān)測和控制。圖2示出了根據(jù)本發(fā)明的實施例的動態(tài)維護集群中的成員服務(wù)器的系統(tǒng)的示意 圖。如圖2所示,在該系統(tǒng)中,引入了集群控制器202,其負責管理、控制和維護整個集群,每 個加入該集群的服務(wù)器都被稱為成員服務(wù)器204。在圖2示出的示例中,為了簡潔,只示出 了一個成員服務(wù)器,在此本領(lǐng)域的技術(shù)人員應(yīng)該理解,整個集群中可以具有多個成員服務(wù) 器。集群控制器202作為一個主控服務(wù)器,只維護集群相關(guān)的結(jié)構(gòu)信息以及提供與這些信 息相關(guān)的服務(wù)。集群的結(jié)構(gòu)是動態(tài)的,構(gòu)成集群的成員服務(wù)器204可以動態(tài)的添加和刪除, 在添加和刪除成員服務(wù)器時,其動態(tài)的工作過程如下1.集群控制器202在一個公開的地址和端口上進行監(jiān)聽;2.成員服務(wù)器204,在啟動/停止時向集群控制器202發(fā)送加入/離開集群事件;3.集群控制器202,根據(jù)該事件,修改集群控制器中的集群拓撲結(jié)構(gòu)信息;4.集群控制器202向集群成員服務(wù)器204發(fā)送集群成員變化的事件通知;
6
5.各個成員服務(wù)器204通過該事件把其看到的集群更新到其本地的最新的集群 拓撲結(jié)構(gòu)信息。一般來說,成員服務(wù)器向集群控制器發(fā)送的注冊信息,包括
成員服務(wù)器的id ;成員服務(wù)器的服務(wù)地址和端口 ;成員服務(wù)器的進行集群管理的地址和端口 ;其他可能在集群通信中用到的信息,如成員分組、負載能力等。集群結(jié)構(gòu)建立后,集群控制器202通過成員服務(wù)器204的集群管理地址和端口,監(jiān) 視集群成員的變化,并通知更新集群信息。集群中的各個成員服務(wù)器之間如果需要發(fā)生通信,其工作過程一般如圖3描述。 圖3中示出了兩個成員服務(wù)器302和304,但本領(lǐng)域的技術(shù)人員應(yīng)該理解,這僅是示例性的, 可以具有多個成員服務(wù)器。1.成員服務(wù)器302希望發(fā)起一個集群間通信,該通信可能是點對點的也可能是一 對多的;2.成員服務(wù)器302向集群控制器306查詢目標服務(wù)器的服務(wù)地址和端口,假設(shè)目 標服務(wù)器為成員服務(wù)器304;3.成員服務(wù)器302通過與成員服務(wù)器304的服務(wù)地址和端口建立通信通道進行通
fn °以上情況都是考慮到集群控制器和成員服務(wù)器正常工作的情況下,下面將分別描 述集群控制器故障、成員服務(wù)器異常、以及集群控制器恢復的情況。集群控制器失效如果集群控制器故障或維護,則集群拓撲結(jié)構(gòu)不能得到更新,新的成員服務(wù)器不 能添加,成員服務(wù)器離開也不能得到更新,但是根據(jù)本發(fā)明提成的方法,它不會影響到已構(gòu) 成集群的成員服務(wù)器之間的通信。圖4示出了根據(jù)本發(fā)明的實施例的集群控制器故障情況 下的成員服務(wù)器之間的通信的示意圖,具體描述如下1.每個成員服務(wù)器402和404都維護了一個本地的集群拓撲結(jié)構(gòu)信息,在集群控 制器406故障或維護時,成員服務(wù)器402和404對集群拓撲結(jié)構(gòu)的認識來自其本地的集群 拓撲結(jié)構(gòu)信息;2.成員服務(wù)器402和404定時地檢查集群控制器406的活動性,如果不能連通,它 會不斷地嘗試與集群控制器406通信,以在集群控制器406活動后,把集群結(jié)構(gòu)恢復;3.如果集群控制器406活動,并且集群結(jié)構(gòu)恢復后,其會通知成員服務(wù)器402和 404更新其本地的集群拓撲結(jié)構(gòu)信息;4.在集群控制器406不活動時,如果需要集群之間通信,成員服務(wù)器402會根據(jù)其 本地的集群拓撲結(jié)構(gòu)信息,選擇適當?shù)姆绞脚c成員服務(wù)器404互相通信。成員服務(wù)器異常考慮到集群成員服務(wù)器可能異常的離開,因此,集群控制器和成員服務(wù)器之間為 了維護好集群結(jié)構(gòu),進行以下操作1.集群控制器定期地檢查各個成員服務(wù)器的生命狀態(tài);2.集群控制器發(fā)現(xiàn)某成員服務(wù)器不再活動時,通過集群成員服務(wù)器變更事件通知其他還存活的成員服務(wù)器;3.成員服務(wù)器,根據(jù)該事件通知,更新其本地的集群拓撲結(jié)構(gòu)信息。集群控制器恢復集群控制器從失效到恢復時,集群拓撲結(jié)構(gòu)會自動得到恢復,其工作過程如下描 述1.集群控制器會根據(jù)歷史記錄的集群拓撲結(jié)構(gòu),主動連接各成員服務(wù)器進行檢查 恢復集群拓撲結(jié)構(gòu),如果能連接上,注冊其信息進入集群結(jié)構(gòu);2.成員服務(wù)器,不斷地嘗試與失效的集群控制器聯(lián)系,一旦聯(lián)系上,把其的信息注 冊到集群控制器。綜上,通過本發(fā)明提供的技術(shù)方案,通過引入集群控制器建立的集群結(jié)構(gòu)更加穩(wěn) 定,只要集群控制器保持可用,集群成員之間的通信、集群的拓撲結(jié)構(gòu)信息都能得到良好的 管理。在這樣一個集群結(jié)構(gòu)管理的基礎(chǔ)上的集群的通信框架,實現(xiàn)了集群之間點對點、一對 多的通信,不會由于各個成員對集群拓撲結(jié)構(gòu)認識的差異而出現(xiàn)不可預(yù)期的通信方式。不 僅克服了傳統(tǒng)靜態(tài)配置方式中不夠靈活的缺點,還解決了傳統(tǒng)動態(tài)方式中技術(shù)繁瑣復雜, 穩(wěn)定性難以保證的問題。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
一種動態(tài)維護集群中的成員服務(wù)器的方法,其特征在于,包括集群控制器在一個公開的地址和端口上監(jiān)聽所述集群中的所有成員服務(wù)器的狀態(tài);所述集群控制器在發(fā)現(xiàn)所述集群中的任一成員服務(wù)器的狀態(tài)發(fā)生改變時,修改集群拓撲結(jié)構(gòu)信息;以及所述集群中的成員服務(wù)器要與其他成員服務(wù)器建立通信連接之前,通過向所述集群控制器查詢所述集群拓撲結(jié)構(gòu)信息來得到所述其他成員服務(wù)器的地址和端口,以與所述其他成員服務(wù)器建立通信通道。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,進一步包括所述集群控制器在修改所述集群拓撲結(jié)構(gòu)信息之后,向所述集群中的所有成員服務(wù)器 發(fā)送集群成員變化的事件通知。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,進一步包括所述集群中的成員服務(wù)器在啟動或停止時向所述集群控制器發(fā)送集群事件;以及所述集群控制器根據(jù)所述集群事件修改集群拓撲結(jié)構(gòu)信息,并向所述集群中的所有成 員服務(wù)器發(fā)送所述集群成員變化的事件通知。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,進一步包括所述集群中的成員服務(wù)器在接收到所述事件通知后,更新其本地的集群拓撲結(jié)構(gòu)信 息。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述集群中的成員服務(wù)器在所述集群控 制器故障時,根據(jù)所述本地的集群拓撲結(jié)構(gòu)信息選擇通信通道進行通信;以及所述集群中的成員服務(wù)器定時與故障的所述集群控制器進行聯(lián)系,一旦所述集群控制 器從故障恢復時,就將所述成員服務(wù)器的信息注冊到所述集群控制器。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述集群控制器在從故障恢復時,根據(jù)其 記錄的所述集群拓撲結(jié)構(gòu)信息主動連接所述集群中的各個成員服務(wù)器,并在連接成功后將 各個成員服務(wù)器的信息注冊到所述集群控制器。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述集群控制器通過所述成員服務(wù)器的 集群管理地址和端口來監(jiān)視所述成員服務(wù)器的狀態(tài)變化。
8.一種動態(tài)維護集群中的成員服務(wù)器的系統(tǒng),其特征在于,包括集群控制器,在一個公開的地址和端口上監(jiān)聽所述集群中的所有成員服務(wù)器的狀態(tài), 在發(fā)現(xiàn)所述集群中的任一成員服務(wù)器的狀態(tài)發(fā)生改變時,修改集群拓撲結(jié)構(gòu)信息;以及至少一個成員服務(wù)器,位于所述集群中,在任一成員服務(wù)器要與其他成員服務(wù)器建立 通信連接之前,通過向所述集群控制器查詢所述集群拓撲結(jié)構(gòu)信息來得到所述其他成員服 務(wù)器的地址和端口,以與所述其他成員服務(wù)器建立通信通道。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述集群控制器還用于在修改所述集群 拓撲結(jié)構(gòu)信息之后,向所述集群中的所有成員服務(wù)器發(fā)送集群成員變化的事件通知。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述集群中的任一成員服務(wù)器在啟動或停止時向所述集群控制器發(fā)送集群事件;所述集群控制器根據(jù)所述集群事件修改集群拓撲結(jié)構(gòu)信息,并向所述集群中的所有成 員服務(wù)器發(fā)送所述集群成員變化的事件通知;以及所述集群中的成員服務(wù)器在接收到所述事件通知后,更新其本地的集群拓撲結(jié)構(gòu)信息。
11.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述集群中的成員服務(wù)器在所述集 群控制器故障時,根據(jù)所述本地的集群拓撲結(jié)構(gòu)信息選擇通信通道進行通信;所述集群中的成員服務(wù)器定時與故障的所述集群控制器進行聯(lián)系,一旦所述集群控制 器從故障恢復時,就將所述成員服務(wù)器的信息注冊到所述集群控制器;以及所述集群控制器在從故障恢復時,根據(jù)其記錄的所述集群拓撲結(jié)構(gòu)信息主動連接所述 集群中的各個成員服務(wù)器,并在連接成功后將各個成員服務(wù)器的信息注冊到所述集群控制o
12.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述集群控制器通過所述成員服務(wù) 器的集群管理地址和端口來監(jiān)視所述成員服務(wù)器的狀態(tài)變化。
全文摘要
本發(fā)明提供了一種動態(tài)維護集群中的成員服務(wù)器的方法,包括集群控制器在一個公開的地址和端口上監(jiān)聽集群中的所有成員服務(wù)器的狀態(tài);集群控制器在發(fā)現(xiàn)集群中的任一成員服務(wù)器的狀態(tài)發(fā)生改變時,修改集群拓撲結(jié)構(gòu)信息;以及集群中的成員服務(wù)器要與其他成員服務(wù)器建立通信連接之前,通過向集群控制器查詢集群拓撲結(jié)構(gòu)信息來得到其他成員服務(wù)器的地址和端口,以與其他成員服務(wù)器建立通信通道。根據(jù)本發(fā)明所提出的方法,通過引入集群控制器,通過傳統(tǒng)的注冊→發(fā)現(xiàn)→綁定的機制進行集群成員的管理和維護,其架構(gòu)簡單,實施維護方便,穩(wěn)定性能夠受到良好的監(jiān)測和控制。本發(fā)明還提出了一種動態(tài)維護集群中的成員服務(wù)器的系統(tǒng)。
文檔編號H04L12/26GK101873237SQ20101020799
公開日2010年10月27日 申請日期2010年6月13日 優(yōu)先權(quán)日2010年6月13日
發(fā)明者何冠宇 申請人:用友軟件股份有限公司