欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種節(jié)點(diǎn)管理方法和裝置制造方法

文檔序號(hào):7817648閱讀:235來源:國知局
一種節(jié)點(diǎn)管理方法和裝置制造方法
【專利摘要】本發(fā)明提出一種節(jié)點(diǎn)管理方法,所述方法包括:從節(jié)點(diǎn)周期性的向所述主節(jié)點(diǎn)發(fā)送第一握手報(bào)文,所述第一握手報(bào)文中包括所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息;主節(jié)點(diǎn)根據(jù)從節(jié)點(diǎn)周期性發(fā)送的第一握手報(bào)文的接收情況維護(hù)第一節(jié)點(diǎn)信息列表,所述第一節(jié)點(diǎn)信息列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié)點(diǎn)的節(jié)點(diǎn)信息;主節(jié)點(diǎn)向第一節(jié)點(diǎn)信息列表中所包含的從節(jié)點(diǎn)周期性的發(fā)送第二握手報(bào)文;所述第二握手報(bào)文中包括所述主節(jié)點(diǎn)根據(jù)所述第一握手報(bào)文的接收情況維護(hù)的第一節(jié)點(diǎn)信息列表;從節(jié)點(diǎn)根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)本地保存的第二節(jié)點(diǎn)信息列表進(jìn)行同步。通過本發(fā)明可以使集群中節(jié)點(diǎn)信息的同步更加高效。
【專利說明】一種節(jié)點(diǎn)管理方法和裝置

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種節(jié)點(diǎn)管理方法和裝置。

【背景技術(shù)】
[0002] 在云計(jì)算管理平臺(tái)中,集群(cluster)管理一組服務(wù)器主機(jī)或者虛擬機(jī)資源,每 個(gè)服務(wù)器為集群中的一個(gè)節(jié)點(diǎn)(node),管理員可以通過操作集群,從集群中增加和刪除節(jié) 點(diǎn);通過集群,管理員可以像管理單個(gè)實(shí)體一樣輕松地管理多個(gè)主機(jī)和虛擬機(jī),從而降低管 理的復(fù)雜度。同時(shí),通過定時(shí)對(duì)集群內(nèi)的主機(jī)和虛擬機(jī)狀態(tài)進(jìn)行監(jiān)測,保證了數(shù)據(jù)中心業(yè)務(wù) 的連續(xù)性。例如,當(dāng)一臺(tái)服務(wù)器主機(jī)出現(xiàn)故障時(shí),運(yùn)行于這臺(tái)主機(jī)上的所有虛擬機(jī)都可以在 集群中的其它主機(jī)上重新進(jìn)行啟動(dòng)。
[0003] 集群也可以通過集群管理協(xié)議自動(dòng)感知節(jié)點(diǎn)的加入或者退出,從而實(shí)現(xiàn)靈活的資 源調(diào)度。通過集群成員管理協(xié)議,集群可以自動(dòng)感知節(jié)點(diǎn)成員的加入或者退出,節(jié)點(diǎn)之間也 可以互相同步集群成員的節(jié)點(diǎn)信息。當(dāng)節(jié)點(diǎn)完成集群成員的節(jié)點(diǎn)信息同步后,集群內(nèi)的節(jié) 點(diǎn)通過互發(fā)心跳消息來監(jiān)控節(jié)點(diǎn)是否正常工作。
[0004]目前,集群的成員管理通常采用TOTEM協(xié)議中的MP子協(xié)議來實(shí)現(xiàn),MP協(xié)議主要實(shí) 現(xiàn)了自動(dòng)發(fā)現(xiàn)加入或者退出集群的服務(wù)器節(jié)點(diǎn),以及集群成員的節(jié)點(diǎn)信息在集群內(nèi)所有主 機(jī)之間的同步。
[0005] 在TOTEM協(xié)議中,集群中的各節(jié)點(diǎn)設(shè)備被排列成一個(gè)環(huán),通過在環(huán)上傳遞一個(gè)令 牌(Token)消息來實(shí)現(xiàn)節(jié)點(diǎn)之間的節(jié)點(diǎn)信息同步實(shí)現(xiàn)。然而由于令牌消息在環(huán)上轉(zhuǎn)發(fā),消 息的轉(zhuǎn)發(fā)效率不高。


【發(fā)明內(nèi)容】

[0006] 有鑒于此,本發(fā)明提出一種節(jié)點(diǎn)管理方法,應(yīng)用于服務(wù)器集群中的主節(jié)點(diǎn),所述服 務(wù)器集群還包括若干從節(jié)點(diǎn),所述方法包括:
[0007] 主節(jié)點(diǎn)根據(jù)從節(jié)點(diǎn)周期性發(fā)送的第一握手報(bào)文的接收情況維護(hù)第一節(jié)點(diǎn)信息列 表,所述第一節(jié)點(diǎn)信息列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié)點(diǎn)的節(jié)點(diǎn) 信息;
[0008] 所述主節(jié)點(diǎn)向所述第一節(jié)點(diǎn)信息列表中所包含的從節(jié)點(diǎn)周期性的發(fā)送第二握手 報(bào)文,所述第二握手報(bào)文中包括所述第一節(jié)點(diǎn)信息列表,以使接收到所述第二握手報(bào)文的 從節(jié)點(diǎn)根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)從節(jié)點(diǎn)中所保存的第二節(jié)點(diǎn)信息列表進(jìn)行同步。
[0009] 本發(fā)明還提出一種節(jié)點(diǎn)管理方法,應(yīng)用于服務(wù)器集群中的任一從節(jié)點(diǎn),所述服務(wù) 器集群還包括一主節(jié)點(diǎn),所述方法包括:
[0010] 所述從節(jié)點(diǎn)周期性的向所述主節(jié)點(diǎn)發(fā)送第一握手報(bào)文,所述第一握手報(bào)文中包括 所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0011] 所述從節(jié)點(diǎn)接收所述主節(jié)點(diǎn)周期性發(fā)送的第二握手報(bào)文,所述第二握手報(bào)文中包 括所述主節(jié)點(diǎn)根據(jù)所述第一握手報(bào)文的接收情況維護(hù)的第一節(jié)點(diǎn)信息列表;所述第一節(jié)點(diǎn) 信息列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0012] 所述從節(jié)點(diǎn)根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)本地保存的第二節(jié)點(diǎn)信息列表進(jìn)行同 止 /J/ 〇
[0013] 本發(fā)明還提出一種節(jié)點(diǎn)管理裝置,應(yīng)用于服務(wù)器集群中的主節(jié)點(diǎn),所述服務(wù)器集 群還包括若干從節(jié)點(diǎn),所述裝置包括:
[0014] 維護(hù)模塊,用于根據(jù)從節(jié)點(diǎn)周期性發(fā)送的第一握手報(bào)文的接收情況維護(hù)第一節(jié)點(diǎn) 信息列表,所述第一節(jié)點(diǎn)信息列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié)點(diǎn) 的節(jié)點(diǎn)信息;
[0015] 第一發(fā)送模塊,用于向所述第一節(jié)點(diǎn)信息列表中所包含的從節(jié)點(diǎn)周期性的發(fā)送第 二握手報(bào)文,所述第二握手報(bào)文中包括所述第一節(jié)點(diǎn)信息列表,以使接收到所述第二握手 報(bào)文的從節(jié)點(diǎn)根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)從節(jié)點(diǎn)中所保存的第二節(jié)點(diǎn)信息列表進(jìn)行同 止 /J/ 〇
[0016] 本發(fā)明還提出一種節(jié)點(diǎn)管理裝置,應(yīng)用于服務(wù)器集群中的任一從節(jié)點(diǎn),所述服務(wù) 器集群還包括一主節(jié)點(diǎn),所述裝置包括:
[0017] 第二發(fā)送模塊,用于周期性的向所述主節(jié)點(diǎn)發(fā)送第一握手報(bào)文,所述第一握手報(bào) 文中包括所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0018] 接收模塊,用于接收所述主節(jié)點(diǎn)周期性發(fā)送的第二握手報(bào)文,所述第二握手報(bào)文 中包括所述主節(jié)點(diǎn)根據(jù)所述第一握手報(bào)文的接收情況維護(hù)的第一節(jié)點(diǎn)信息列表;所述第一 節(jié)點(diǎn)信息列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié)點(diǎn)的節(jié)點(diǎn)信息;;
[0019] 同步模塊,用于根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)本地保存的第二節(jié)點(diǎn)信息列表進(jìn)行 同步。
[0020] 本發(fā)明提出一種主從結(jié)構(gòu)的集群管理協(xié)議,主節(jié)點(diǎn)和從節(jié)點(diǎn)之間通過互相發(fā)送握 手報(bào)文來完成集群中其他成員節(jié)點(diǎn)的節(jié)點(diǎn)信息的同步,使得節(jié)點(diǎn)信息的同步更加高效。

【專利附圖】

【附圖說明】
[0021] 圖1是本發(fā)明一種示例性實(shí)施方式中示出的一種節(jié)點(diǎn)管理方法的流程圖;
[0022] 圖2是本發(fā)明一種示例性實(shí)施方式中示出的主節(jié)點(diǎn)和從節(jié)點(diǎn)的交互過程中主節(jié) 點(diǎn)的處理流程圖;
[0023] 圖3是本發(fā)明一種示例性實(shí)施方式中示出的主節(jié)點(diǎn)和從節(jié)點(diǎn)的交互過程中從節(jié) 點(diǎn)的處理流程圖;
[0024] 圖4是本發(fā)明一種示例性實(shí)施方式中示出的從節(jié)點(diǎn)在主節(jié)點(diǎn)上的狀態(tài)遷移示意 圖;
[0025] 圖5是本發(fā)明一種示例性實(shí)施方式中示出的從節(jié)點(diǎn)自身的狀態(tài)遷移示意圖;
[0026] 圖6是本發(fā)明一種示例性實(shí)施方式中示出的主節(jié)點(diǎn)和從節(jié)點(diǎn)之間的交互報(bào)文格 式;
[0027] 圖7是本發(fā)明一種示例性實(shí)施方式示出的一種節(jié)點(diǎn)管理裝置的框圖;
[0028] 圖8是本發(fā)明一種示例性實(shí)施方式示出的一種承載所述節(jié)點(diǎn)管理裝置的節(jié)點(diǎn)設(shè) 備的硬件結(jié)構(gòu)圖;
[0029] 圖9是本發(fā)明一種示例性實(shí)施方式示出的另一種節(jié)點(diǎn)管理裝置的框圖;
[0030] 圖10是本發(fā)明一種示例性實(shí)施方式示出的一種承載所述另一種節(jié)點(diǎn)管理裝置的 節(jié)點(diǎn)設(shè)備的硬件結(jié)構(gòu)圖。

【具體實(shí)施方式】
[0031] 本發(fā)明提出一種主從結(jié)構(gòu)的集群管理協(xié)議,摒棄了現(xiàn)有集群管理協(xié)議中令牌環(huán) 的結(jié)構(gòu),通過將集群中的成員節(jié)點(diǎn)劃分為主節(jié)點(diǎn)和從節(jié)點(diǎn),主節(jié)點(diǎn)和從節(jié)點(diǎn)之間通過互相 發(fā)送握手報(bào)文來完成集群中其他成員節(jié)點(diǎn)的節(jié)點(diǎn)信息的同步,使得節(jié)點(diǎn)信息的同步更加高 效。
[0032] 應(yīng)用本協(xié)議的集群中,當(dāng)有節(jié)點(diǎn)加入和退出時(shí),通過主節(jié)點(diǎn)和從節(jié)點(diǎn)之間簡單高 效的交互后,就可以快速完成其他節(jié)點(diǎn)的節(jié)點(diǎn)信息同步以及節(jié)點(diǎn)信息的更新,單個(gè)節(jié)點(diǎn)的 加入和退出或者單個(gè)節(jié)點(diǎn)的故障,不會(huì)造成整個(gè)集群中的節(jié)點(diǎn)重新進(jìn)行節(jié)點(diǎn)信息的同步, 因此,應(yīng)用本協(xié)議的集群的穩(wěn)定性將更高,而且當(dāng)集群中節(jié)點(diǎn)數(shù)量大時(shí),也不會(huì)存在系統(tǒng)收 斂變慢而需要限制集群成員數(shù)量的問題,從而可以對(duì)集群進(jìn)行大規(guī)模部署。
[0033] 為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì) 本發(fā)明所述方案作進(jìn)一步地詳細(xì)說明。
[0034] 請(qǐng)參見圖1,本發(fā)明提出一種節(jié)點(diǎn)管理方法,分別應(yīng)用于服務(wù)器集群中的主節(jié)點(diǎn)和 從節(jié)點(diǎn),其中主節(jié)點(diǎn)和從節(jié)點(diǎn)相互配合,執(zhí)行如下步驟:
[0035] 步驟101、從節(jié)點(diǎn)周期性的向所述主節(jié)點(diǎn)發(fā)送第一握手報(bào)文,所述第一握手報(bào)文中 包括所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0036] 步驟102、主節(jié)點(diǎn)根據(jù)從節(jié)點(diǎn)周期性發(fā)送的第一握手報(bào)文的接收情況維護(hù)第一節(jié) 點(diǎn)信息列表,所述第一節(jié)點(diǎn)信息列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié) 點(diǎn)的節(jié)點(diǎn)信息;
[0037] 步驟103、主節(jié)點(diǎn)向所述第一節(jié)點(diǎn)信息列表中所包含的從節(jié)點(diǎn)周期性的發(fā)送第二 握手報(bào)文;所述第二握手報(bào)文中包括所述主節(jié)點(diǎn)根據(jù)所述第一握手報(bào)文的接收情況維護(hù)的 第一節(jié)點(diǎn)信息列表;
[0038] 步驟104、從節(jié)點(diǎn)根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)本地保存的第二節(jié)點(diǎn)信息列表進(jìn) 行同步。
[0039] 在本實(shí)施例中,主節(jié)點(diǎn)和從節(jié)點(diǎn)可以從集群中選舉產(chǎn)生。例如,當(dāng)集群在某服務(wù)器 節(jié)點(diǎn)上創(chuàng)建完成后,系統(tǒng)可以自動(dòng)選舉該服務(wù)器節(jié)點(diǎn)為主節(jié)點(diǎn),例如選定第一個(gè)加入集群 的節(jié)點(diǎn)作為主節(jié)點(diǎn),主節(jié)點(diǎn)一旦確定,加入集群的其它節(jié)點(diǎn)自動(dòng)被選定為從節(jié)點(diǎn)。當(dāng)集群中 主節(jié)點(diǎn)和從節(jié)點(diǎn)確定后,主節(jié)點(diǎn)和從節(jié)點(diǎn)之間可以通過報(bào)文交互來完成集群中其他成員節(jié) 點(diǎn)的節(jié)點(diǎn)信息的同步。
[0040] 另外,為了防止主節(jié)點(diǎn)故障或者主節(jié)點(diǎn)退出集群造成集群中沒有主節(jié)點(diǎn)的情況發(fā) 生,主節(jié)點(diǎn)還可以從集群中的從節(jié)點(diǎn)中為集群選舉出一個(gè)備份主節(jié)點(diǎn)。備份主節(jié)點(diǎn)用于對(duì) 主節(jié)點(diǎn)進(jìn)行備份,當(dāng)主節(jié)點(diǎn)故障或者主節(jié)點(diǎn)退出集群時(shí),備份主節(jié)點(diǎn)自動(dòng)升級(jí)為集群的主 節(jié)點(diǎn)。其中,備份主節(jié)點(diǎn)自身作為從節(jié)點(diǎn),也參與節(jié)點(diǎn)信息的同步。
[0041] 主節(jié)點(diǎn)在為集群選舉備份主節(jié)點(diǎn)時(shí),可以選舉第一個(gè)加入集群的從節(jié)點(diǎn)作為備份 主節(jié)點(diǎn),當(dāng)主節(jié)點(diǎn)檢測到備份主節(jié)點(diǎn)處于斷開狀態(tài)或者備份主節(jié)點(diǎn)離開集群時(shí),還可以再 重新從所有從節(jié)點(diǎn)中選舉一個(gè)節(jié)點(diǎn)ID最小的從節(jié)點(diǎn)作為備份主節(jié)點(diǎn)。
[0042] 以下針對(duì)主節(jié)點(diǎn)和從節(jié)點(diǎn)的交互過程進(jìn)行更加詳盡的描述。
[0043] 請(qǐng)參見圖2和圖3,圖2為本實(shí)施例示出的主節(jié)點(diǎn)和從節(jié)點(diǎn)的交互過程中主節(jié)點(diǎn)的 處理流程圖;圖3為本實(shí)施例示出的主節(jié)點(diǎn)和從節(jié)點(diǎn)的交互過程中從節(jié)點(diǎn)的處理流程圖。
[0044] 在本實(shí)施例中,對(duì)從節(jié)點(diǎn)的管理主要是通過主節(jié)點(diǎn)來完成的,因此在初始狀態(tài)下, 從節(jié)點(diǎn)在加入集群后,首先需要獲取集群中主節(jié)點(diǎn)的節(jié)點(diǎn)信息,從而與主節(jié)點(diǎn)建立連接以 完成后續(xù)的報(bào)文交互。
[0045] 一:主節(jié)點(diǎn)發(fā)現(xiàn)過程
[0046] 如圖2所示,從節(jié)點(diǎn)在加入集群后,首先將自身設(shè)置為Initialize狀態(tài);所 述Initialize狀態(tài),表示初始狀態(tài),當(dāng)集群剛開始啟動(dòng)時(shí),每個(gè)從節(jié)點(diǎn)的初始狀態(tài)均為 Initialize狀態(tài)。處于Initialize狀態(tài)的從節(jié)點(diǎn),可以周期性的向集群所在的局域網(wǎng)內(nèi)發(fā) 送一個(gè)主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文,該報(bào)文中可以攜帶該從節(jié)點(diǎn)的節(jié)點(diǎn)信息,比如所述節(jié)點(diǎn)信息 可以包括該從節(jié)點(diǎn)在集群內(nèi)收發(fā)消息的IP地址、端口號(hào)、以及節(jié)點(diǎn)ID等(從節(jié)點(diǎn)首次加入 集群時(shí),尚未分配節(jié)點(diǎn)ID,因此主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文中攜帶的該從節(jié)點(diǎn)的節(jié)點(diǎn)信息中節(jié)點(diǎn) ID為空)。
[0047] 在實(shí)現(xiàn)時(shí),所述主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文可以是一個(gè)組播報(bào)文;例如,可以在集群創(chuàng)建 時(shí),為該集群創(chuàng)建一個(gè)組播組,并指定一個(gè)特定的組播IP地址和M)P端口,該組播組用于集 群內(nèi)成員之間的成員組播發(fā)送,集群內(nèi)的每個(gè)節(jié)點(diǎn)均加入該創(chuàng)建的組播組中,當(dāng)將所述發(fā) 現(xiàn)請(qǐng)求報(bào)文的目的地址設(shè)置為該組播組的組播IP地址,組播組中的節(jié)點(diǎn)設(shè)備將都會(huì)收到 上述主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文。
[0048] 如圖3所示,當(dāng)主節(jié)點(diǎn)收到從節(jié)點(diǎn)發(fā)出的主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文后,為該從節(jié)點(diǎn)分 配一個(gè)唯一的節(jié)點(diǎn)ID,并將該從節(jié)點(diǎn)在本地設(shè)置為Initialize (初始)狀態(tài)。其中,主節(jié)點(diǎn) 在為從節(jié)點(diǎn)分配節(jié)點(diǎn)ID時(shí),可以按照收到從節(jié)點(diǎn)的主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文的先后順序由小 到大進(jìn)行分配;所述Initialize狀態(tài),表示初始化狀態(tài),當(dāng)集群剛開始啟動(dòng)時(shí),每個(gè)從節(jié)點(diǎn) 的初始狀態(tài)均為Initialize狀態(tài)。
[0049] 主節(jié)點(diǎn)在為從節(jié)點(diǎn)分配完節(jié)點(diǎn)ID后,根據(jù)收到的主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文中攜帶的 從節(jié)點(diǎn)的IP地址以及UDP端口號(hào),向從節(jié)點(diǎn)回應(yīng)主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文,該報(bào)文中攜帶主節(jié) 點(diǎn)的節(jié)點(diǎn)信息以及主節(jié)點(diǎn)為該從節(jié)點(diǎn)分配的節(jié)點(diǎn)ID,其中,主節(jié)點(diǎn)的節(jié)點(diǎn)信息仍然包括主 節(jié)點(diǎn)的節(jié)點(diǎn)ID、IP地址以及UDP端口號(hào)等信息。在實(shí)現(xiàn)時(shí),所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文可以 為單播報(bào)文,該單播報(bào)文的目的地址為發(fā)送所述主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文的從節(jié)點(diǎn)的IP地址。
[0050] 請(qǐng)參見圖2,從節(jié)點(diǎn)在接收到主節(jié)點(diǎn)發(fā)出的主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文后,將主節(jié)點(diǎn)的節(jié) 點(diǎn)信息以及主節(jié)點(diǎn)為本節(jié)點(diǎn)分配的節(jié)點(diǎn)ID保存到本地的my_proc_set (第二節(jié)點(diǎn)信息列 表)中,并將本節(jié)點(diǎn)由Initialize狀態(tài)遷移為Active (有效)狀態(tài);其中,所述my_proc_ set為節(jié)點(diǎn)信息列表,用于保存集群內(nèi)所有節(jié)點(diǎn)(包括主節(jié)點(diǎn)和所有從節(jié)點(diǎn))的節(jié)點(diǎn)信息。 所述Active狀態(tài),表示主節(jié)點(diǎn)發(fā)現(xiàn)過程已經(jīng)完成,處于Active狀態(tài)的從節(jié)點(diǎn)已可以開始與 主節(jié)點(diǎn)進(jìn)行握手報(bào)文的交互以完成節(jié)點(diǎn)信息的同步。其中,從節(jié)點(diǎn)在收到其他從節(jié)點(diǎn)發(fā)送 的主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文時(shí),丟棄該報(bào)文。
[0051] 以上過程,可以稱之為主節(jié)點(diǎn)的發(fā)現(xiàn)過程,當(dāng)完成了主節(jié)點(diǎn)的發(fā)現(xiàn)過程后,主節(jié)點(diǎn) 與從節(jié)點(diǎn)將進(jìn)一步進(jìn)行握手報(bào)文的交互,以完成節(jié)點(diǎn)信息的同步。
[0052] 二:節(jié)點(diǎn)信息的同步過程
[0053] 在本實(shí)施例中,處于Active狀態(tài),將周期性的向主節(jié)點(diǎn)發(fā)送第一握手報(bào)文,該第 一握手報(bào)文中包括該從節(jié)點(diǎn)的節(jié)點(diǎn)信息,此時(shí)該從節(jié)點(diǎn)的節(jié)點(diǎn)信息可以包括從節(jié)點(diǎn)在集群 內(nèi)收發(fā)消息的IP地址、端口號(hào)以及節(jié)點(diǎn)ID等。
[0054] 當(dāng)主節(jié)點(diǎn)收到從節(jié)點(diǎn)發(fā)出的第一握手報(bào)文后,將該從節(jié)點(diǎn)的節(jié)點(diǎn)信息保存在本地 的my_proc_set (第一節(jié)點(diǎn)信息列表)中,并將該從節(jié)點(diǎn)在本地設(shè)置為Active狀態(tài),同時(shí)將 為該從節(jié)點(diǎn)設(shè)置的狀態(tài)信息,同步到備份主節(jié)點(diǎn)上。
[0055] 等同的,主節(jié)點(diǎn)也會(huì)周期性的向在本地的my_proc_set中所包含的從節(jié)點(diǎn)發(fā)送第 二握手報(bào)文,其中所述第二握手報(bào)文中攜帶備份主節(jié)點(diǎn)的節(jié)點(diǎn)信息以及主節(jié)點(diǎn)已在本地保 存的所有從節(jié)點(diǎn)的節(jié)點(diǎn)信息(即my_proc_set中所有的從節(jié)點(diǎn)信息)。
[0056] 當(dāng)從節(jié)點(diǎn)(包括備份主節(jié)點(diǎn))收到主節(jié)點(diǎn)發(fā)出的第二握手報(bào)文后,首先判斷第二 握手報(bào)文中攜帶的備份主節(jié)點(diǎn)的節(jié)點(diǎn)ID與本節(jié)點(diǎn)的節(jié)點(diǎn)ID是否相同;如果相同,表明本節(jié) 點(diǎn)是備份主節(jié)點(diǎn),于是在本地將本節(jié)點(diǎn)設(shè)置為備份主節(jié)點(diǎn),并將所述第二握手報(bào)文中攜帶 的所有從節(jié)點(diǎn)的節(jié)點(diǎn)信息保存到本地的my_proc_set中;如果不相同,表明本節(jié)點(diǎn)為從節(jié) 點(diǎn),于是將備份主節(jié)點(diǎn)的節(jié)點(diǎn)信息以及第二握手報(bào)文中攜帶的所有從節(jié)點(diǎn)的節(jié)點(diǎn)信息保存 到本地的my_proc_set中。
[0057] 其中,值得說明的是,所述第一握手報(bào)文以及第二握手報(bào)文均為單向報(bào)文,對(duì)端在 收到所述第一握手報(bào)文以及第二握手報(bào)文后,不需要向發(fā)送端回應(yīng)應(yīng)答報(bào)文。
[0058] 至此,從節(jié)點(diǎn)已完成針對(duì)集群中各從節(jié)點(diǎn)的節(jié)點(diǎn)信息同步。
[0059] 在本實(shí)施例中,當(dāng)任一從節(jié)點(diǎn)退出集群時(shí),可以向主節(jié)點(diǎn)發(fā)送一個(gè)離開報(bào)文,當(dāng)主 節(jié)點(diǎn)收到任一從節(jié)點(diǎn)的離開報(bào)文時(shí),立即將主節(jié)點(diǎn)本地的my_proc_set中保存的該從節(jié)點(diǎn) 的節(jié)點(diǎn)信息刪除,并再次向本地的my_proc_set中所包含的集群中的其它各從節(jié)點(diǎn)發(fā)出第 二握手報(bào)文,其它各從節(jié)點(diǎn)在收到該第二握手報(bào)文后,由于該報(bào)文中攜帶的節(jié)點(diǎn)信息已發(fā) 生了變化,因此根據(jù)該報(bào)文中攜帶的從節(jié)點(diǎn)的節(jié)點(diǎn)信息對(duì)從節(jié)點(diǎn)本地的my_proc_set進(jìn)行 更新。
[0060] 等同的,當(dāng)主節(jié)點(diǎn)退出集群時(shí),停止向本地的my_proc_set中所包含的從節(jié)點(diǎn)發(fā) 送第二握手報(bào)文,并向所述備份主節(jié)點(diǎn)發(fā)送離開報(bào)文,備份主節(jié)點(diǎn)在收到主節(jié)點(diǎn)發(fā)送的離 開報(bào)文后,自動(dòng)升級(jí)為主節(jié)點(diǎn),從集群中重新選舉備份主節(jié)點(diǎn),并重新開始向本地的my_ proc_set中所包含的集群中的從節(jié)點(diǎn)發(fā)送第二握手報(bào)文,使得各從節(jié)點(diǎn)更新本地的my_ proc_set中保存的主節(jié)點(diǎn)的節(jié)點(diǎn)信息以及備份主節(jié)點(diǎn)的節(jié)點(diǎn)信息。
[0061] 在本實(shí)施例中,從節(jié)點(diǎn)除了上述Initialize狀態(tài)和Active狀態(tài)外,還可以有 Unknown (未知)狀態(tài)和Disconnect (斷開)狀態(tài)。在實(shí)現(xiàn)時(shí),為了方便對(duì)從節(jié)點(diǎn)進(jìn)行管理, 可以為從節(jié)點(diǎn)的以上各種狀態(tài)設(shè)置一個(gè)統(tǒng)一的狀態(tài)超時(shí)時(shí)間;例如,可以將所述狀態(tài)超時(shí) 時(shí)間設(shè)置為60秒,當(dāng)60秒內(nèi),主節(jié)點(diǎn)未收到從節(jié)點(diǎn)的任何報(bào)文,則可以選擇對(duì)該從節(jié)點(diǎn)的 節(jié)點(diǎn)信息進(jìn)行刪除;等同的,如果從節(jié)點(diǎn)在60秒內(nèi),沒有收到來自主節(jié)點(diǎn)的任何報(bào)文,則可 以自動(dòng)進(jìn)行狀態(tài)的遷移。當(dāng)然,在實(shí)現(xiàn)時(shí),也可以為從節(jié)點(diǎn)的每種狀態(tài)分別設(shè)置狀態(tài)超時(shí)時(shí) 間。
[0062] 以下結(jié)合附圖并舉實(shí)施例對(duì)主節(jié)點(diǎn)根據(jù)所述超時(shí)時(shí)間對(duì)從節(jié)點(diǎn)進(jìn)行管理的過程 進(jìn)行詳細(xì)說明。
[0063] 請(qǐng)參見圖4,圖4為從節(jié)點(diǎn)在主節(jié)點(diǎn)上的狀態(tài)遷移示意圖;
[0064] 如圖4所示,當(dāng)所述主節(jié)點(diǎn)向所述從節(jié)點(diǎn)回應(yīng)主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文后,此時(shí)從節(jié) 點(diǎn)為Initialize狀態(tài),如果主節(jié)點(diǎn)在所述狀態(tài)超時(shí)時(shí)間內(nèi),仍未收到所述從節(jié)點(diǎn)發(fā)送的第 一握手報(bào)文時(shí),向所述從節(jié)點(diǎn)重新發(fā)送所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文,如果在發(fā)送次數(shù)達(dá)到預(yù) 設(shè)次數(shù)后,例如3次,仍然沒有收到所述第一握手報(bào)文,則停止發(fā)送所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào) 文;同時(shí),由于該從節(jié)點(diǎn)當(dāng)前處于Initialize狀態(tài),因此可以直接將本地保存的該從節(jié)點(diǎn) 的節(jié)點(diǎn)信息刪除。
[0065] 當(dāng)所述主節(jié)點(diǎn)在向所述從節(jié)點(diǎn)發(fā)送第二握手報(bào)文后,此時(shí)所述從節(jié)點(diǎn)為Active 狀態(tài),如果在狀態(tài)超時(shí)時(shí)間內(nèi),仍未收到所述從節(jié)點(diǎn)發(fā)送的第一握手報(bào)文,則將該從節(jié)點(diǎn)由 Active狀態(tài)遷移為Unknown狀態(tài)。其中處于Unknown狀態(tài)的從節(jié)點(diǎn)的節(jié)點(diǎn)信息仍然在所述 第一節(jié)點(diǎn)信息列表中保存。
[0066] 當(dāng)所述主節(jié)點(diǎn)在所述狀態(tài)超時(shí)時(shí)間內(nèi),收到處于Unknown狀態(tài)的從節(jié)點(diǎn)發(fā)送的第 一握手報(bào)文或者除了第一握手報(bào)文以外的其他交互報(bào)文,則可以將該從節(jié)點(diǎn)由Unknown狀 態(tài)重新遷移為Active狀態(tài);其中所述其他交互報(bào)文可以是除了主節(jié)點(diǎn)和從節(jié)點(diǎn)交互的握 手報(bào)文以外的其他管理報(bào)文。
[0067] 當(dāng)然,如果所述主節(jié)點(diǎn)在所述狀態(tài)超時(shí)時(shí)間內(nèi),未收到處于Unknown狀態(tài)的從節(jié) 點(diǎn)發(fā)送的第一握手報(bào)文或者除了第一握手報(bào)文以外的其他交互報(bào)文,則可以將該從節(jié)點(diǎn)由 Unknown狀態(tài)遷移為Disconnect狀態(tài),并將該節(jié)點(diǎn)的節(jié)點(diǎn)信息從本地刪除,同時(shí)向集群中 的其他各節(jié)點(diǎn)發(fā)送第二握手報(bào)文,以使得所述其他各節(jié)點(diǎn)在收到該第二握手報(bào)文后更新本 地的my_proc_set。其中,處于Disconnect狀態(tài)的從節(jié)點(diǎn)與主節(jié)點(diǎn)重新恢復(fù)通信后,將重新 加入集群,加入成功后,重新恢復(fù)為Active狀態(tài)。
[0068] 請(qǐng)參見圖5,圖5為從節(jié)點(diǎn)自身的狀態(tài)遷移示意圖;
[0069] 如圖5所示,當(dāng)從節(jié)點(diǎn)在向所述主節(jié)點(diǎn)發(fā)送第一握手報(bào)文后,如果在狀態(tài)超時(shí)時(shí) 間內(nèi),仍未收到所述主節(jié)點(diǎn)發(fā)送的第二握手報(bào)文,此時(shí)所述從節(jié)點(diǎn)的狀態(tài)為Active狀態(tài), 則將本節(jié)點(diǎn)的狀態(tài)由Active狀態(tài)遷移為Unknown狀態(tài);
[0070] 當(dāng)將本節(jié)點(diǎn)的狀態(tài)由Active狀態(tài)遷移為Unknown狀態(tài)后,在狀態(tài)超時(shí)時(shí)間內(nèi),收 到了主節(jié)點(diǎn)發(fā)送的第二握手報(bào)文或除了所述第二握手報(bào)文以外的其他交互報(bào)文,則將本節(jié) 點(diǎn)的狀態(tài)由Unknown狀態(tài)重新遷移為Active狀態(tài);等同的,當(dāng)將本節(jié)點(diǎn)的狀態(tài)由Active 狀態(tài)遷移為Unknown狀態(tài)后,在狀態(tài)超時(shí)時(shí)間內(nèi),仍未收到主節(jié)點(diǎn)發(fā)送的第二握手報(bào)文或 除了所述第二握手報(bào)文以外的其他交互報(bào)文,則將本節(jié)點(diǎn)的狀態(tài)由Unknown狀態(tài)遷移為 Disconnect 狀態(tài)。
[0071] 其中,處于Disconnect狀態(tài)的從節(jié)點(diǎn)與主節(jié)點(diǎn)重新恢復(fù)通信后,將重新加入集 群,加入成功后,重新恢復(fù)為Active狀態(tài)。
[0072] 通過以上描述可知,通過為從節(jié)點(diǎn)的各狀態(tài)設(shè)置狀態(tài)超時(shí)時(shí)間,主節(jié)點(diǎn)在狀態(tài)超 時(shí)時(shí)間內(nèi)未收到從節(jié)點(diǎn)的任何報(bào)文時(shí),可以對(duì)從節(jié)點(diǎn)的狀態(tài)進(jìn)行遷移,然后根據(jù)從節(jié)點(diǎn)的 狀態(tài)開判斷是否刪除該從節(jié)點(diǎn)的節(jié)點(diǎn)信息,從而主節(jié)點(diǎn)對(duì)從節(jié)點(diǎn)的管理更加高效和便捷。
[0073] 在本實(shí)施例中,主節(jié)點(diǎn)和從節(jié)點(diǎn)之間交互的報(bào)文,在實(shí)現(xiàn)時(shí)可以通過對(duì)UDP報(bào)文 進(jìn)行改造來進(jìn)行構(gòu)建。
[0074] 以下對(duì)對(duì)主節(jié)點(diǎn)和從節(jié)點(diǎn)之間交互的報(bào)文的構(gòu)建過程進(jìn)行詳細(xì)描述。
[0075] 請(qǐng)參見圖6,圖6為本實(shí)施例定義的主節(jié)點(diǎn)和從節(jié)點(diǎn)之間的交互報(bào)文格式(外層的 IP/UDP頭未示出),除了 DATA字段以外,其他字段都占用固定長度的字節(jié),各字段長度以及 意義如下:
[0076] Version字段:長度為1字節(jié),表示版本號(hào),取值固定為0x01。
[0077] MSGTAG字段:長度為4字節(jié),表示報(bào)文標(biāo)識(shí),取值固定為0xAABBlA91。
[0078] Length字段:長度為2字節(jié),表示報(bào)文長度,取值為報(bào)文頭和DATA字段的總長度 (不包括外層的IP/M3P頭)。
[0079] Checksum字段:長度2字節(jié),表示報(bào)文的校驗(yàn)和,取值根據(jù)RFC1071算法計(jì)算得 出。
[0080] MSGType字段:長度為2字節(jié),表示報(bào)文類型,取值可擴(kuò)展。
[0081] 在本實(shí)施例中,可以通過對(duì)MSGType字段的取值進(jìn)行擴(kuò)展,新增一些報(bào)文類型,來 構(gòu)造主節(jié)點(diǎn)和從節(jié)點(diǎn)之間交互的各種報(bào)文。例如,可以新增以下幾種報(bào)文類型:

【權(quán)利要求】
1. 一種節(jié)點(diǎn)管理方法,應(yīng)用于服務(wù)器集群中的主節(jié)點(diǎn),所述服務(wù)器集群還包括若干從 節(jié)點(diǎn),其特征在于,所述方法包括: 主節(jié)點(diǎn)根據(jù)從節(jié)點(diǎn)周期性發(fā)送的第一握手報(bào)文的接收情況維護(hù)第一節(jié)點(diǎn)信息列表, 所述第一節(jié)點(diǎn)信息列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié)點(diǎn)的節(jié)點(diǎn)信 息; 所述主節(jié)點(diǎn)向所述第一節(jié)點(diǎn)信息列表中所包含的從節(jié)點(diǎn)周期性的發(fā)送第二握手報(bào)文, 所述第二握手報(bào)文中包括所述第一節(jié)點(diǎn)信息列表,以使接收到所述第二握手報(bào)文的從節(jié)點(diǎn) 根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)從節(jié)點(diǎn)中所保存的第二節(jié)點(diǎn)信息列表進(jìn)行同步。
2. 如權(quán)利要求1所述的方法,其特征在于,所述主節(jié)點(diǎn)根據(jù)所述從節(jié)點(diǎn)周期性發(fā)送的 第一握手報(bào)文的接收情況維護(hù)第一節(jié)點(diǎn)信息列表包括: 所述主節(jié)點(diǎn)接收從節(jié)點(diǎn)發(fā)送的所述第一握手報(bào)文,所述第一握手報(bào)文中包括所述從節(jié) 點(diǎn)的節(jié)點(diǎn)信息; 所述主節(jié)點(diǎn)將所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息保存到所述第一節(jié)點(diǎn)信息列表中,并在本地將所 述從節(jié)點(diǎn)設(shè)置為有效狀態(tài)。
3. 如權(quán)利要求2所述的方法,其特征在于,所述主節(jié)點(diǎn)接收從節(jié)點(diǎn)發(fā)送的第一握手報(bào) 文之前,所述方法還包括: 所述主節(jié)點(diǎn)接收從節(jié)點(diǎn)發(fā)送的主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文,所述主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文中包括 所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息; 所述主節(jié)點(diǎn)為所述從節(jié)點(diǎn)分配一個(gè)唯一的節(jié)點(diǎn)ID,并在本地將所述從節(jié)點(diǎn)設(shè)置為初始 狀態(tài); 所述主節(jié)點(diǎn)向所述從節(jié)點(diǎn)回應(yīng)主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文,以觸發(fā)收到所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng) 報(bào)文的從節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送所述第一握手報(bào)文;所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文包括所述主節(jié)點(diǎn) 的節(jié)點(diǎn)信息以及為所述從節(jié)點(diǎn)分配的節(jié)點(diǎn)ID。
4. 如權(quán)利要求3所述的方法,其特征在于,當(dāng)所述主節(jié)點(diǎn)向所述從節(jié)點(diǎn)回應(yīng)主節(jié)點(diǎn)發(fā) 現(xiàn)響應(yīng)報(bào)文后,所述方法還包括: 如果所述主節(jié)點(diǎn)在狀態(tài)超時(shí)時(shí)間內(nèi)未收到所述從節(jié)點(diǎn)發(fā)送的第一握手報(bào)文時(shí),向所述 從節(jié)點(diǎn)重新發(fā)送所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文; 當(dāng)所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文的發(fā)送次數(shù)達(dá)到預(yù)設(shè)次數(shù)時(shí),停止向所述從節(jié)點(diǎn)發(fā)送所述 主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文,將所述第一節(jié)點(diǎn)信息列表中保存的該從節(jié)點(diǎn)的節(jié)點(diǎn)信息刪除。
5. 如權(quán)利要求2所述的方法,其特征在于,當(dāng)所述主節(jié)點(diǎn)在向所述從節(jié)點(diǎn)發(fā)送第二握 手報(bào)文后,所述方法還包括: 如果所述主節(jié)點(diǎn)在狀態(tài)超時(shí)時(shí)間內(nèi)未收到所述從節(jié)點(diǎn)發(fā)送的第一握手報(bào)文,則在本地 將該從節(jié)點(diǎn)由有效狀態(tài)遷移為未知狀態(tài);其中處于未知狀態(tài)的從節(jié)點(diǎn)的節(jié)點(diǎn)信息仍然在所 述第一節(jié)點(diǎn)信息列表中保存。
6. 如權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 當(dāng)所述主節(jié)點(diǎn)在狀態(tài)超時(shí)時(shí)間內(nèi),收到處于未知狀態(tài)的從節(jié)點(diǎn)發(fā)送的第一握手報(bào)文或 其他交互報(bào)文,則將該從節(jié)點(diǎn)由未知狀態(tài)遷移為有效狀態(tài); 當(dāng)所述主節(jié)點(diǎn)在狀態(tài)超時(shí)時(shí)間內(nèi),未收到處于未知狀態(tài)的從節(jié)點(diǎn)發(fā)送的第一握手報(bào)文 或其他交互報(bào)文,則將該從節(jié)點(diǎn)由未知狀態(tài)遷移為斷開狀態(tài),并刪除所述第一節(jié)點(diǎn)信息列 表中保存的該從節(jié)點(diǎn)的節(jié)點(diǎn)信息,向所述第一節(jié)點(diǎn)信息列表中所包含的其他各從節(jié)點(diǎn)發(fā)送 第二握手報(bào)文,以使得所述其他各從節(jié)點(diǎn)更新所述第二節(jié)點(diǎn)信息列表。
7. 如權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 當(dāng)主節(jié)點(diǎn)收到集群中任一從節(jié)點(diǎn)發(fā)送的離開報(bào)文時(shí),將所述第一節(jié)點(diǎn)信息列表中保存 的該從節(jié)點(diǎn)的節(jié)點(diǎn)信息刪除,并向所述第一節(jié)點(diǎn)信息列表中所包含的其他各從節(jié)點(diǎn)發(fā)送第 二握手報(bào)文,以使得所述其他各從節(jié)點(diǎn)更新所述第二節(jié)點(diǎn)信息列表。
8. 如權(quán)利要求1所述的方法,其特征在于,所述若干從節(jié)點(diǎn)中還包含一個(gè)備份主節(jié)點(diǎn), 所述第二握手報(bào)文中還包括備份主節(jié)點(diǎn)的節(jié)點(diǎn)信息和節(jié)點(diǎn)ID ; 其中,所述備份主節(jié)點(diǎn)由所述主節(jié)點(diǎn)從所有從節(jié)點(diǎn)中選舉產(chǎn)生,所述選舉過程包括: 當(dāng)服務(wù)器集群在所述主節(jié)點(diǎn)上創(chuàng)建完成后,所述主節(jié)點(diǎn)選舉第一個(gè)加入所述服務(wù)器集 群的從節(jié)點(diǎn)作為備份主節(jié)點(diǎn); 當(dāng)主節(jié)點(diǎn)檢測到備份主節(jié)點(diǎn)處于斷開狀態(tài)或者接收到所述備份主節(jié)點(diǎn)發(fā)送的離開報(bào) 文時(shí),重新選舉所有從節(jié)點(diǎn)中節(jié)點(diǎn)ID最小的從節(jié)點(diǎn)作為備份主節(jié)點(diǎn)。
9. 如權(quán)利要求8所述的方法,其特征在于,所述方法還包括: 當(dāng)主節(jié)點(diǎn)退出集群時(shí),停止向第一節(jié)點(diǎn)信息列表中所包含的從節(jié)點(diǎn)發(fā)送第二握手報(bào) 文,并向所述備份主節(jié)點(diǎn)發(fā)送離開報(bào)文,以觸發(fā)接收到該離開報(bào)文的備份主節(jié)點(diǎn)升級(jí)為主 節(jié)點(diǎn)。
10. -種節(jié)點(diǎn)管理方法,應(yīng)用于服務(wù)器集群中的任一從節(jié)點(diǎn),所述服務(wù)器集群還包括一 主節(jié)點(diǎn),其特征在于,所述方法包括: 所述從節(jié)點(diǎn)周期性的向所述主節(jié)點(diǎn)發(fā)送第一握手報(bào)文,所述第一握手報(bào)文中包括所述 從節(jié)點(diǎn)的節(jié)點(diǎn)信息; 所述從節(jié)點(diǎn)接收所述主節(jié)點(diǎn)周期性發(fā)送的第二握手報(bào)文,所述第二握手報(bào)文中包括所 述主節(jié)點(diǎn)根據(jù)所述第一握手報(bào)文的接收情況維護(hù)的第一節(jié)點(diǎn)信息列表;所述第一節(jié)點(diǎn)信息 列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié)點(diǎn)的節(jié)點(diǎn)信息; 所述從節(jié)點(diǎn)根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)本地保存的第二節(jié)點(diǎn)信息列表進(jìn)行同步。
11. 如權(quán)利要求10所述的方法,其特征在于,所述從節(jié)點(diǎn)周期性的向所述主節(jié)點(diǎn)發(fā)送 第一握手報(bào)文之前,所述方法還包括: 所述從節(jié)點(diǎn)向集群中各節(jié)點(diǎn)發(fā)送主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文,所述主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文中包 括所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息; 所述從節(jié)點(diǎn)接收所述主節(jié)點(diǎn)回應(yīng)的主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文,所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文包 括所述主節(jié)點(diǎn)的節(jié)點(diǎn)信息以及所述主節(jié)點(diǎn)為所述從節(jié)點(diǎn)分配的節(jié)點(diǎn)ID ; 所述從節(jié)點(diǎn)在本地保存所述主節(jié)點(diǎn)的節(jié)點(diǎn)信息以及所述主節(jié)點(diǎn)為所述從節(jié)點(diǎn)分配的 節(jié)點(diǎn)ID,并在本地將本節(jié)點(diǎn)設(shè)置為有效狀態(tài)。
12. 如權(quán)利要求10所述的方法,其特征在于,當(dāng)所述從節(jié)點(diǎn)在向所述主節(jié)點(diǎn)發(fā)送第一 握手報(bào)文后,所述方法還包括: 如果在狀態(tài)超時(shí)時(shí)間內(nèi)未收到所述主節(jié)點(diǎn)發(fā)送的第二握手報(bào)文,則在本地將本節(jié)點(diǎn)的 狀態(tài)由有效狀態(tài)遷移為未知狀態(tài); 當(dāng)將本節(jié)點(diǎn)的狀態(tài)由有效狀態(tài)遷移為未知狀態(tài)后,在狀態(tài)超時(shí)時(shí)間內(nèi),收到主節(jié)點(diǎn)發(fā) 送的第二握手報(bào)文或其他交互報(bào)文,則在本地將本節(jié)點(diǎn)的狀態(tài)由未知狀態(tài)遷移為有效狀 態(tài); 當(dāng)將本節(jié)點(diǎn)的狀態(tài)由有效狀態(tài)遷移為未知狀態(tài)后,在狀態(tài)超時(shí)時(shí)間內(nèi),未收到主節(jié)點(diǎn) 發(fā)送的第二握手報(bào)文或其他交互報(bào)文,則在本地將本節(jié)點(diǎn)的狀態(tài)由未知狀態(tài)遷移為斷開狀 態(tài)。
13. 如權(quán)利要求10所述的方法,其特征在于,所述方法還包括: 當(dāng)所述從節(jié)點(diǎn)收到集群中其他從節(jié)點(diǎn)發(fā)送的主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文時(shí),丟棄該報(bào)文; 當(dāng)所述從節(jié)點(diǎn)退出集群時(shí),向所述主節(jié)點(diǎn)發(fā)送所述離開報(bào)文,以使得所述主節(jié)點(diǎn)在收 到該離開報(bào)文后,將所述第一節(jié)點(diǎn)信息列表中保存的該從節(jié)點(diǎn)的節(jié)點(diǎn)信息刪除。
14. 如權(quán)利要求10所述的方法,其特征在于,所述若干從節(jié)點(diǎn)中還包含一個(gè)備份主節(jié) 點(diǎn),所述第二握手報(bào)文中還包括備份主節(jié)點(diǎn)的節(jié)點(diǎn)信息;其中,所述備份主節(jié)點(diǎn)由所述主節(jié) 點(diǎn)從所有從節(jié)點(diǎn)中選舉產(chǎn)生;所述方法還包括: 當(dāng)所述從節(jié)點(diǎn)收到所述第二握手報(bào)文后,判斷所述第二握手報(bào)文中的備份主節(jié)點(diǎn)的節(jié) 點(diǎn)ID與本節(jié)點(diǎn)的節(jié)點(diǎn)ID是否相同; 如果相同,將本節(jié)點(diǎn)設(shè)置為備份主節(jié)點(diǎn); 如果不相同,在本地保存所述備份主節(jié)點(diǎn)的節(jié)點(diǎn)信息。
15. 如權(quán)利要求14所述的方法,其特征在于,所述方法還包括: 當(dāng)所述從節(jié)點(diǎn)將本節(jié)點(diǎn)設(shè)置為備份主節(jié)點(diǎn)后,檢測到本節(jié)點(diǎn)已處于斷開狀態(tài)或者接收 到所述主節(jié)點(diǎn)發(fā)送的離開報(bào)文時(shí),自動(dòng)升級(jí)為主節(jié)點(diǎn)。
16. -種節(jié)點(diǎn)管理裝置,應(yīng)用于服務(wù)器集群中的主節(jié)點(diǎn),所述服務(wù)器集群還包括若干從 節(jié)點(diǎn),其特征在于,所述裝置包括: 維護(hù)模塊,用于根據(jù)從節(jié)點(diǎn)周期性發(fā)送的第一握手報(bào)文的接收情況維護(hù)第一節(jié)點(diǎn)信息 列表,所述第一節(jié)點(diǎn)信息列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié)點(diǎn)的節(jié) 點(diǎn)信息; 第一發(fā)送模塊,用于向所述第一節(jié)點(diǎn)信息列表中所包含的從節(jié)點(diǎn)周期性的發(fā)送第二握 手報(bào)文,所述第二握手報(bào)文中包括所述第一節(jié)點(diǎn)信息列表,以使接收到所述第二握手報(bào)文 的從節(jié)點(diǎn)根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)從節(jié)點(diǎn)中所保存的第二節(jié)點(diǎn)信息列表進(jìn)行同步。
17. 如權(quán)利要求16所述的裝置,其特征在于,所述維護(hù)模塊進(jìn)一步用于: 接收從節(jié)點(diǎn)發(fā)送的所述第一握手報(bào)文,所述第一握手報(bào)文中包括所述從節(jié)點(diǎn)的節(jié)點(diǎn)信 息; 將所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息保存到所述第一節(jié)點(diǎn)信息列表中,并在本地將所述從節(jié)點(diǎn)設(shè) 置為有效狀態(tài)。
18. 如權(quán)利要求17所述的裝置,其特征在于,所述維護(hù)模塊進(jìn)一步用于: 接收從節(jié)點(diǎn)發(fā)送的第一握手報(bào)文之前,接收所述從節(jié)點(diǎn)發(fā)送的主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文, 所述主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文中包括所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息; 為所述從節(jié)點(diǎn)分配一個(gè)唯一的節(jié)點(diǎn)ID,并在本地將所述從節(jié)點(diǎn)設(shè)置為初始狀態(tài); 所述第一發(fā)送模塊進(jìn)一步用于: 在接收到所述主節(jié)點(diǎn)請(qǐng)求報(bào)文后,向所述從節(jié)點(diǎn)回應(yīng)主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文,以觸發(fā)收 到所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文的從節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送所述第一握手報(bào)文;所述主節(jié)點(diǎn)發(fā)現(xiàn)響 應(yīng)報(bào)文包括所述主節(jié)點(diǎn)的節(jié)點(diǎn)信息以及為所述從節(jié)點(diǎn)分配的節(jié)點(diǎn)ID。
19. 如權(quán)利要求18所述的裝置,其特征在于,所述第一發(fā)送模塊進(jìn)一步用于: 當(dāng)向所述從節(jié)點(diǎn)回應(yīng)主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文后,如果在狀態(tài)超時(shí)時(shí)間內(nèi)未收到所述從節(jié) 點(diǎn)發(fā)送的第一握手報(bào)文時(shí),向所述從節(jié)點(diǎn)重新發(fā)送所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文;當(dāng)所述主節(jié) 點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文的發(fā)送次數(shù)達(dá)到預(yù)設(shè)次數(shù)時(shí),停止向所述從節(jié)點(diǎn)發(fā)送所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng) 報(bào)文,將所述第一節(jié)點(diǎn)信息列表中保存的該從節(jié)點(diǎn)的節(jié)點(diǎn)信息刪除。
20. 如權(quán)利要求17所述的裝置,其特征在于,所述維護(hù)模塊進(jìn)一步用于: 當(dāng)所述第一發(fā)送模塊向所述從節(jié)點(diǎn)發(fā)送第二握手報(bào)文后,如果在狀態(tài)超時(shí)時(shí)間內(nèi)未收 到所述從節(jié)點(diǎn)發(fā)送的第一握手報(bào)文,則在本地將該從節(jié)點(diǎn)由有效狀態(tài)遷移為未知狀態(tài);其 中處于未知狀態(tài)的從節(jié)點(diǎn)的節(jié)點(diǎn)信息仍然在所述第一節(jié)點(diǎn)信息列表中保存。
21. 如權(quán)利要求20所述的裝置,其特征在于,所述維護(hù)模塊進(jìn)一步用于: 當(dāng)在狀態(tài)超時(shí)時(shí)間內(nèi),收到處于未知狀態(tài)的從節(jié)點(diǎn)發(fā)送的第一握手報(bào)文或其他交互報(bào) 文,則將該從節(jié)點(diǎn)由未知狀態(tài)遷移為有效狀態(tài); 當(dāng)在狀態(tài)超時(shí)時(shí)間內(nèi),未收到處于未知狀態(tài)的從節(jié)點(diǎn)發(fā)送的第一握手報(bào)文或其他交互 報(bào)文,則將該從節(jié)點(diǎn)由未知狀態(tài)遷移為斷開狀態(tài),并刪除所述第一節(jié)點(diǎn)信息列表中保存的 該從節(jié)點(diǎn)的節(jié)點(diǎn)信息,向所述第一節(jié)點(diǎn)信息列表中所包含的其他各從節(jié)點(diǎn)發(fā)送第二握手報(bào) 文,以使得所述其他各從節(jié)點(diǎn)更新所述第二節(jié)點(diǎn)信息列表。
22. 如權(quán)利要求17所述的裝置,其特征在于,所述維護(hù)模塊進(jìn)一步用于: 當(dāng)收到集群中任一從節(jié)點(diǎn)發(fā)送的離開報(bào)文時(shí),將所述第一節(jié)點(diǎn)信息列表中保存的該從 節(jié)點(diǎn)的節(jié)點(diǎn)信息刪除,并向所述第一節(jié)點(diǎn)信息列表中所包含的其他各從節(jié)點(diǎn)發(fā)送第二握手 報(bào)文,以使得所述其他各從節(jié)點(diǎn)更新所述第二節(jié)點(diǎn)信息列表。
23. 如權(quán)利要求16所述的裝置,其特征在于,所述若干從節(jié)點(diǎn)中還包含一個(gè)備份主節(jié) 點(diǎn),所述第二握手報(bào)文中還包括備份主節(jié)點(diǎn)的節(jié)點(diǎn)信息和節(jié)點(diǎn)ID ;所述裝置還包括: 選舉模塊,用于當(dāng)服務(wù)器集群在本地創(chuàng)建完成后,選舉第一個(gè)加入所述服務(wù)器集群的 從節(jié)點(diǎn)作為備份主節(jié)點(diǎn); 當(dāng)檢測到備份主節(jié)點(diǎn)處于斷開狀態(tài)或者接收到所述備份主節(jié)點(diǎn)發(fā)送的離開報(bào)文時(shí),重 新選舉所有從節(jié)點(diǎn)中節(jié)點(diǎn)ID最小的從節(jié)點(diǎn)作為備份主節(jié)點(diǎn)。
24. 如權(quán)利要求23所述的裝置,其特征在于,所述維護(hù)模塊進(jìn)一步用于: 當(dāng)本節(jié)點(diǎn)退出集群時(shí),停止向第一節(jié)點(diǎn)信息列表中所包含的從節(jié)點(diǎn)發(fā)送第二握手報(bào) 文,并向所述備份主節(jié)點(diǎn)發(fā)送離開報(bào)文,以觸發(fā)接收到該離開報(bào)文的備份主節(jié)點(diǎn)升級(jí)為主 節(jié)點(diǎn)。
25. -種節(jié)點(diǎn)管理裝置,應(yīng)用于服務(wù)器集群中的任一從節(jié)點(diǎn),所述服務(wù)器集群還包括一 主節(jié)點(diǎn),其特征在于,所述裝置包括: 第二發(fā)送模塊,用于周期性的向所述主節(jié)點(diǎn)發(fā)送第一握手報(bào)文,所述第一握手報(bào)文中 包括所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息; 接收模塊,用于接收所述主節(jié)點(diǎn)周期性發(fā)送的第二握手報(bào)文,所述第二握手報(bào)文中包 括所述主節(jié)點(diǎn)根據(jù)所述第一握手報(bào)文的接收情況維護(hù)的第一節(jié)點(diǎn)信息列表;所述第一節(jié)點(diǎn) 信息列表中包括主節(jié)點(diǎn)已保存的從節(jié)點(diǎn)的節(jié)點(diǎn)信息和所述主節(jié)點(diǎn)的節(jié)點(diǎn)信息;; 同步模塊,用于根據(jù)所述第一節(jié)點(diǎn)信息列表對(duì)本地保存的第二節(jié)點(diǎn)信息列表進(jìn)行同 止 /J/ 〇
26. 如權(quán)利要求25所述的裝置,其特征在于, 所述第二發(fā)送模塊進(jìn)一步用于: 周期性的向所述主節(jié)點(diǎn)發(fā)送第一握手報(bào)文之前,向集群中各節(jié)點(diǎn)發(fā)送主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求 報(bào)文,所述主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文中包括所述從節(jié)點(diǎn)的節(jié)點(diǎn)信息; 所述接收模塊進(jìn)一步用于: 接收所述主節(jié)點(diǎn)回應(yīng)的主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文,所述主節(jié)點(diǎn)發(fā)現(xiàn)響應(yīng)報(bào)文包括所述主節(jié) 點(diǎn)的節(jié)點(diǎn)信息以及所述主節(jié)點(diǎn)為所述從節(jié)點(diǎn)分配的節(jié)點(diǎn)ID ; 所述從節(jié)點(diǎn)在本地保存所述主節(jié)點(diǎn)的節(jié)點(diǎn)信息以及所述主節(jié)點(diǎn)為所述從節(jié)點(diǎn)分配的 節(jié)點(diǎn)ID,并在本地將本節(jié)點(diǎn)設(shè)置為有效狀態(tài)。
27. 如權(quán)利要求25所述的裝置,其特征在于,所述接收模塊進(jìn)一步用于: 當(dāng)?shù)诙l(fā)送模塊在向所述主節(jié)點(diǎn)發(fā)送第一握手報(bào)文后,如果在所述狀態(tài)超時(shí)時(shí)間內(nèi)仍 未收到所述主節(jié)點(diǎn)發(fā)送的第二握手報(bào)文,則在本地將本節(jié)點(diǎn)的狀態(tài)由有效狀態(tài)遷移為未知 狀態(tài); 當(dāng)將本節(jié)點(diǎn)的狀態(tài)遷移為未知狀態(tài)后,在狀態(tài)超時(shí)時(shí)間內(nèi),收到主節(jié)點(diǎn)發(fā)送的第二握 手報(bào)文或其他交互報(bào)文,則在本地將本節(jié)點(diǎn)的狀態(tài)由未知狀態(tài)遷移為有效狀態(tài); 當(dāng)將本節(jié)點(diǎn)的狀態(tài)遷移為未知狀態(tài)后,在狀態(tài)超時(shí)時(shí)間內(nèi),未收到主節(jié)點(diǎn)發(fā)送的第二 握手報(bào)文或其他交互報(bào)文,則在本地將本節(jié)點(diǎn)的狀態(tài)由未知狀態(tài)遷移為斷開狀態(tài)。
28. 如權(quán)利要求25所述的裝置,其特征在于,所述接收模塊進(jìn)一步用于: 收到集群中其他從節(jié)點(diǎn)發(fā)送的主節(jié)點(diǎn)發(fā)現(xiàn)請(qǐng)求報(bào)文時(shí),丟棄該報(bào)文; 所述第二發(fā)送模塊進(jìn)一步用于: 當(dāng)本節(jié)點(diǎn)退出集群時(shí),向所述主節(jié)點(diǎn)發(fā)送所述離開報(bào)文,以使得所述主節(jié)點(diǎn)在收到該 離開報(bào)文后,將所述第一節(jié)點(diǎn)信息列表中保存的本節(jié)點(diǎn)的節(jié)點(diǎn)信息刪除。
29. 如權(quán)利要求25所述的裝置,其特征在于,所述若干從節(jié)點(diǎn)中還包含一個(gè)備份主節(jié) 點(diǎn),所述第二握手報(bào)文中還包括備份主節(jié)點(diǎn)的節(jié)點(diǎn)信息;其中,所述備份主節(jié)點(diǎn)由所述主節(jié) 點(diǎn)從所有從節(jié)點(diǎn)中選舉產(chǎn)生; 所述接收模塊進(jìn)一步用于: 收到所述第二握手報(bào)文后,判斷所述第二握手報(bào)文中的備份主節(jié)點(diǎn)的節(jié)點(diǎn)ID與本節(jié) 點(diǎn)的節(jié)點(diǎn)ID是否相同; 如果相同,將本節(jié)點(diǎn)設(shè)置為備份主節(jié)點(diǎn); 如果不相同,在本地保存所述備份主節(jié)點(diǎn)的節(jié)點(diǎn)信息。
30. 如權(quán)利要求29所述的裝置,其特征在于,所述接收模塊進(jìn)一步用于: 當(dāng)將本節(jié)點(diǎn)設(shè)置為備份主節(jié)點(diǎn)后,檢測到本節(jié)點(diǎn)已處于斷開狀態(tài),或者接收到所述主 節(jié)點(diǎn)發(fā)送的離開報(bào)文時(shí),自動(dòng)升級(jí)為主節(jié)點(diǎn)。
【文檔編號(hào)】H04L29/08GK104320459SQ201410577490
【公開日】2015年1月28日 申請(qǐng)日期:2014年10月24日 優(yōu)先權(quán)日:2014年10月24日
【發(fā)明者】王永清 申請(qǐng)人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
茌平县| 封开县| 富源县| 天门市| 安乡县| 广宁县| 太和县| 昆明市| 和平县| 弥勒县| 左权县| 炎陵县| 竹溪县| 和龙市| 加查县| 紫云| 霸州市| 贵德县| 牟定县| 安福县| 东阳市| 朝阳县| 松潘县| 家居| 青岛市| 岐山县| 敦化市| 延川县| 长兴县| 韶山市| 襄垣县| 察隅县| 株洲县| 镇原县| 潼南县| 荥阳市| 大埔县| 抚远县| 武乡县| 大兴区| 甘南县|