一種服務器集群的組建方法和裝置的制造方法
【技術領域】
[0001]本發明屬于服務器集群領域,尤其涉及一種服務器集群的組建方法和裝置。
【背景技術】
[0002]服務器集群,是指將多個服務器節點集中起來一起,提供同一種服務。服務器集群可利用多個服務器節點進行并行計算,獲得很高的計算速度;也可用其中的一個或多個服務器節點做備份,保證服務器集群不掉線、安全、穩定、可靠地提供服務。
[0003]現有技術搭建服務器集群,通常基于TCP/IP協議的用戶數據報協議(UserDatagram Protocol,UDP)或傳輸控制協議(Transmiss1n Control Protocol,TCP)實現。以TCP協議實現為例,當新服務器節點請求加入某個服務器集群時,采用TCP協議以單播方式向同個集群的其它服務器節點發送加入該服務器集群的請求,數據包能準確到達對方,但耗費流量多些。而UDP協議實現,采用IP多播技術(IP Multicast)向同個集群的其它服務器節點廣播加入該服務器集群的請求,可以節省流量,適合于局域網內組建服務器集群。
【發明內容】
[0004]本發明的目的在于提供一種服務器集群的組建方法和裝置,以提供一種加入服務器集群的方式。
[0005]第一方面,本發明提供一種服務器集群的組建方法,所述服務器集群的組建方法包括:
[0006]在通道層建立一個通道,通過所述通道發出加入指定集群的加入事件;
[0007]在監聽到所述加入事件時,生成查找所述指定集群的組員的查找事件;
[0008]向多個服務器節點廣播所述查找事件;
[0009]在每監聽到一個反饋事件時解析所述反饋事件,并解析出所述反饋事件指定的物理地址和組員標簽,所述反饋事件由所述服務器節點向本服務器節點反饋;
[0010]檢測所述組員標簽,如果從所述組員標簽中檢測到組長標識,則根據物理地址向具有所述組長標識的服務器節點申請加入所述指定集群。
[0011]第二方面,本發明提供一種服務器集群的組建裝置,所述服務器集群的組建裝置包括:
[0012]通道單元,設于通道層,用于建立一個通道,通過所述通道發出加入指定集群的加入事件;
[0013]生成單元,用于在監聽到所述加入事件時,生成查找所述指定集群的組員的查找事件;
[0014]廣播單元,用于向多個服務器節點廣播所述查找事件;
[0015]解析單元,用于在每監聽到一個反饋事件時解析所述反饋事件,并解析出所述反饋事件指定的物理地址和組員標簽,所述反饋事件由所述服務器節點向本服務器節點反饋;
[0016]檢測單元,設于群組服務層,用于檢測所述組員標簽;
[0017]申請單元,用于如果所述檢測單元從所述組員標簽中檢測到組長標識,則根據物理地址向具有所述組長標識的服務器節點申請加入所述指定集群。
[0018]本發明的有益效果:當希望加入指定集群時建立一個通道,通過該通道發出加入所述指定集群的加入事件,進而群組服務層在監聽到所述加入事件時生成查找事件,廣播所述查找事件;繼而根據接收的反饋事件分析其中的組員標簽,查找是否存在組長標識,如存在,向具有所述組長標識的服務器節點申請加入所述指定集群。
【附圖說明】
[0019]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0020]圖1是本發明實施例提供的服務器集群的組建方法的工作流程圖;
[0021]圖2是本發明實施例提供的服務器集群的組建方法的一種優化工作流程圖;
[0022]圖3是本發明實施例提供的服務器集群的組建方法的又一種優化工作流程圖;
[0023]圖4是本發明實施例提供的服務器集群的組建裝置的組成結構;
[0024]圖5是本發明實施例提供的服務器集群的組建裝置的一種優化組成結構;
[0025]圖6是本發明實施例提供的服務器集群的組建裝置的又一種優化組成結構;
[0026]圖7是本發明實施例提供的服務器集群的組建裝置的又一種優化組成結構。
【具體實施方式】
[0027]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。為了說明本發明所述的技術方案,下面通過具體實施例來進行說明。
[0028]在本發明實施例中,每個服務器節點都可以分別多個服務器集群的組員。需說明的是,對于每個服務器集群,會從該服務器集群中的所有組員中確定一個組長。對于服務器集群中的某個服務器節點,如果該服務器節點為組長,則在該服務器節點的組員標簽中設置組長標識,如果該服務器節點不為組長,則在該服務器節點的組員標簽中設置普通成員標識。
[0029]圖1示出了本發明實施例提供的服務器集群的組建方法的工作流程,為了便于描述,僅不出了與本發明實施例相關的部分。
[0030]本發明實施例提供的所述服務器集群的組建方法,如圖1所示,所述服務器集群的組建方法包括步驟Al、步驟A2、步驟A3、步驟A4和步驟A5。
[0031]步驟Al,在通道層建立一個通道,通過所述通道發出加入指定集群的加入事件。
[0032]需說明的是,對于本服務器節點可接入的服務器集群,本發明實施例預先從可接入的服務器集群選擇的一個或多個服務器集群,將選擇的服務器集群作為所述指定集群。
[0033]在本發明實施例中,預先在本服務器節點中設定了一個或多個指定集群的名稱;如果需要將本服務器節點加入某個指定集群,則需要對應建立一個通道。如果希望將本服務器節點加入多個指定集群,則需要針對每個指定集群分別建立一個通道。
[0034]進而通過一個通道,可發出加入一個指定集群的加入事件。
[0035]在本發明實施例中,每個通道都是建立在通道層(即channel層)。待針對加入一個指定集群的任務建立起一個通道之后,通過該通道觸發一個加入事件,并將該加入事件下發至群組服務層(即GMS層);通過該加入事件觸發加入指定集群的請求。
[0036]在本發明實施例中,本服務器節點的群組服務層會對本服務器節點可接入的每個服務器集群(包括已接入的服務器集群,和暫未接入的服務器集群)進行統計,統計每個服務器集群的名稱。
[0037]另外,群組服務層還會對本服務器節點已接入的每個服務器集群進行成員信息統計,包括:該個服務器群集中每個服務器節點的名稱(如服務器節點的HOST名稱),該個服務器群集中每個服務器節點的物理地址,以及該個服務器群集中每個服務器節點的組員標簽;其中,所述組員標簽包括:該服務器節點是否加入該個服務器群集的信息。