本發(fā)明涉及網(wǎng)絡(luò)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種實(shí)現(xiàn)集群組建的方法和裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)的不斷發(fā)展,各種網(wǎng)絡(luò)應(yīng)用層出不窮,各類網(wǎng)絡(luò)應(yīng)的實(shí)現(xiàn),都離不開集群的配合,以避免隨之而來的網(wǎng)絡(luò)延時(shí)、數(shù)據(jù)丟失等等問題?,F(xiàn)有集群的拓?fù)浣Y(jié)構(gòu)中,包括一控制中心,以及諸多節(jié)點(diǎn)??刂浦行闹饕脕韯?chuàng)建集群,亦可認(rèn)為控制中心是集群的第一個(gè)節(jié)點(diǎn),后續(xù)所有需要加入集群的節(jié)點(diǎn),都需要通過控制中心來實(shí)現(xiàn)。
集群中,僅僅是控制中心掌握著集群內(nèi)節(jié)點(diǎn)信息,換而言之,集群內(nèi)所有節(jié)點(diǎn)都必須通過控制中心來獲取集群的相關(guān)信息。
具體而言,當(dāng)新增節(jié)點(diǎn)需要加入集群時(shí),首先通過配置文件或者其它方式獲取到控制中心的地址,由此地址創(chuàng)建到控制中心的連接,通過創(chuàng)建的連接而向控制中心發(fā)送加入集群請(qǐng)求,在控制中心的作用下完成新增節(jié)點(diǎn)的集群加入過程。
由此可見,集群組建依賴于控制中心。對(duì)于新增節(jié)點(diǎn)的加入而言,由于必須知道控制中心的地址,靈活性不佳。并且一旦控制中心發(fā)生變動(dòng),也將會(huì)相應(yīng)的造成諸多不便。
技術(shù)實(shí)現(xiàn)要素:
為了解決相關(guān)技術(shù)中存在的集群組建依賴于控制中心這一單點(diǎn),造成新增節(jié)點(diǎn)的加入以及集群的實(shí)現(xiàn)等靈活性不佳的技術(shù)問題,本發(fā)明提供了一種實(shí)現(xiàn)集群組建的方法和裝置。
一種實(shí)現(xiàn)集群組建的方法,所述集群內(nèi)部署節(jié)點(diǎn),所述方法應(yīng)用于所述集群的新增節(jié)點(diǎn),所述方法包括:
所述新增節(jié)點(diǎn)通過組播發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求,所述新增節(jié)點(diǎn)與所述集群內(nèi)所部署的節(jié)點(diǎn)處于相同組播組;
通過集群內(nèi)節(jié)點(diǎn)對(duì)所述網(wǎng)絡(luò)地址獲取請(qǐng)求的響應(yīng),獲得所述集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址;
通過所述網(wǎng)絡(luò)地址請(qǐng)求加入所述集群;
隨著集群內(nèi)新增節(jié)點(diǎn)加入操作被執(zhí)行而使所述新增節(jié)點(diǎn)獲得集群內(nèi)節(jié)點(diǎn)信息,完成所述新增節(jié)點(diǎn)的集群加入過程。
一種實(shí)現(xiàn)集群組建的方法,所述集群內(nèi)部署節(jié)點(diǎn),所述方法應(yīng)用于所述集群內(nèi)被部署的節(jié)點(diǎn),所述方法包括:
所述節(jié)點(diǎn)接收組播的網(wǎng)絡(luò)地址獲取請(qǐng)求,組播所述網(wǎng)絡(luò)地址獲取請(qǐng)求的節(jié)點(diǎn)是所述集群的新增節(jié)點(diǎn);
響應(yīng)所述網(wǎng)絡(luò)地址獲取請(qǐng)求而返回自身網(wǎng)絡(luò)地址;
隨著所述新增節(jié)點(diǎn)根據(jù)所述網(wǎng)絡(luò)地址請(qǐng)求加入所述集群,執(zhí)行新增節(jié)點(diǎn)加入操作。
一種實(shí)現(xiàn)集群組建的裝置,所述集群內(nèi)部署節(jié)點(diǎn),所述裝置應(yīng)用于集群的新增節(jié)點(diǎn),所述裝置包括:
組播模塊,用于通過組播發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求,所述新增節(jié)點(diǎn)與所述集群內(nèi)所部署的節(jié)點(diǎn)處于相同組播組;
響應(yīng)獲得模塊,用于通過集群內(nèi)節(jié)點(diǎn)對(duì)所述網(wǎng)絡(luò)地址獲取請(qǐng)求的響應(yīng),獲得所述集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址;
請(qǐng)求加入模塊,用于通過所述網(wǎng)絡(luò)地址請(qǐng)求加入所述集群;
節(jié)點(diǎn)信息獲得模塊,用于隨著集群內(nèi)新增節(jié)點(diǎn)加入操作被執(zhí)行而使所述新增節(jié)點(diǎn)獲得集群內(nèi)節(jié)點(diǎn)信息,完成所述新增節(jié)點(diǎn)的集群加入過程。
一種實(shí)現(xiàn)集群組建的裝置,所述集群內(nèi)部署節(jié)點(diǎn),所述裝置應(yīng)用于所述集群內(nèi)被部署的節(jié)點(diǎn),所述裝置包括:
組播接收模塊,用于接收組播的網(wǎng)絡(luò)地址獲取請(qǐng)求,組播所述網(wǎng)絡(luò)地址獲取請(qǐng)求的節(jié)點(diǎn)是所述集群的新增節(jié)點(diǎn);
請(qǐng)求響應(yīng)模塊,用于響應(yīng)所述網(wǎng)絡(luò)地址獲取請(qǐng)求而返回自身網(wǎng)絡(luò)地址;
操作執(zhí)行模塊,用于隨著所述新增節(jié)點(diǎn)根據(jù)所述網(wǎng)絡(luò)地址請(qǐng)求加入所述集群,執(zhí)行新增節(jié)點(diǎn)加入操作。
本發(fā)明的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
集群的實(shí)現(xiàn)中,其內(nèi)部部署了節(jié)點(diǎn),對(duì)于集群的新增節(jié)點(diǎn)而言,為加入集群,新增節(jié)點(diǎn)首先通過組播發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求,新增節(jié)點(diǎn)與集群內(nèi)所部署的節(jié)點(diǎn)處于相同組播組,通過集群內(nèi)節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)地址獲取請(qǐng)求的響應(yīng),獲得集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址,通過網(wǎng)絡(luò)地址請(qǐng)求加入集群,隨著集群內(nèi)新增節(jié)點(diǎn)加入操作被執(zhí)行而使新增節(jié)點(diǎn)獲得集群內(nèi)節(jié)點(diǎn)信息,完成新增節(jié)點(diǎn)的集群加入過程,至此,便使得新增節(jié)點(diǎn)在集群內(nèi)的加入不需要依賴于單點(diǎn)節(jié)點(diǎn),如前述所指的控制中心,換而言之,并不存在單獨(dú)的控制中心,由所獲取的任一節(jié)點(diǎn)所對(duì)應(yīng)網(wǎng)絡(luò)地址即可完成加入過程,無需額外的操作,增強(qiáng)了新增節(jié)點(diǎn)加入以及集群實(shí)現(xiàn)的靈活性,靈活快速的自動(dòng)組建集群。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本發(fā)明。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并于說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)本發(fā)明所涉及的實(shí)施環(huán)境的示意圖;
圖2是根據(jù)一示例性實(shí)施例示出的一種裝置的框圖;
圖3是根據(jù)一示例性實(shí)施例示出的一種實(shí)現(xiàn)集群組建的方法的流程圖;
圖4是根據(jù)圖3對(duì)應(yīng)實(shí)施例示出的對(duì)步驟310的細(xì)節(jié)進(jìn)行描述的流程圖;
圖5是圖3對(duì)應(yīng)實(shí)施例示出的對(duì)步驟330的細(xì)節(jié)進(jìn)行描述的流程圖;
圖6是根據(jù)圖3對(duì)應(yīng)實(shí)施例示出的對(duì)步驟350的細(xì)節(jié)進(jìn)行描述的流程圖;
圖7是根據(jù)圖6對(duì)應(yīng)實(shí)施例示出的對(duì)步驟351的細(xì)節(jié)進(jìn)行描述的流程圖;
圖8是根據(jù)一示例性實(shí)施例示出的一種實(shí)現(xiàn)集群組建的方法的流程圖;
圖9是根據(jù)圖8對(duì)應(yīng)實(shí)施例示出的對(duì)步驟550的細(xì)節(jié)進(jìn)行描述的流程圖;
圖10是根據(jù)一示例性實(shí)施例示出的集群內(nèi)節(jié)點(diǎn)拓?fù)涫疽鈭D;
圖11是根據(jù)圖10對(duì)應(yīng)實(shí)施例示出的集群內(nèi)實(shí)現(xiàn)新增節(jié)點(diǎn)加入的應(yīng)用示意圖;
圖12是根據(jù)一示例性實(shí)施例示出的一種實(shí)現(xiàn)集群組建的裝置的框圖;
圖13是根據(jù)圖12對(duì)應(yīng)實(shí)施例示出的對(duì)請(qǐng)求加入模塊的細(xì)節(jié)進(jìn)行描述的框圖;
圖14是根據(jù)一示例性實(shí)施例示出的被應(yīng)用于集群內(nèi)被部署節(jié)點(diǎn)的一種實(shí)現(xiàn)集群組建的裝置的框圖;
圖15是根據(jù)圖14對(duì)應(yīng)實(shí)施例示出的對(duì)操作執(zhí)行模塊的細(xì)節(jié)進(jìn)行描述的框圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例執(zhí)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)本發(fā)明所涉及的實(shí)施環(huán)境的示意圖。該實(shí)施環(huán)境包括,若干個(gè)節(jié)點(diǎn)110,通過若干個(gè)節(jié)點(diǎn)110的部署實(shí)現(xiàn)集群。
所指的節(jié)點(diǎn)110即為集群中實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用功能的任一機(jī)器,比如服務(wù)器。在此實(shí)施環(huán)境中,節(jié)點(diǎn)110將通過本發(fā)明所提供的方法來實(shí)現(xiàn)新增節(jié)點(diǎn)加入集群,以及集群內(nèi)部的各種控制實(shí)現(xiàn),進(jìn)而能夠靈活應(yīng)對(duì)集群中節(jié)點(diǎn)發(fā)生各種變動(dòng)。
圖2是根據(jù)一示例性實(shí)施例示出的一種裝置的框圖。例如,裝置200可以是圖1所示實(shí)施環(huán)境中,集群的任意一臺(tái)機(jī)器。
參照?qǐng)D2,根據(jù)一示例性實(shí)施例示出的一種裝置的框圖。例如,裝置200可以是圖1所示實(shí)施環(huán)境中集群包含的機(jī)器,比如服務(wù)器。
參照?qǐng)D2,該裝置200可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個(gè)或一個(gè)以上中央處理器(centralprocessingunits,cpu)222(例如,一個(gè)或一個(gè)以上處理器)和存儲(chǔ)器232,一個(gè)或一個(gè)以上存儲(chǔ)應(yīng)用程序242或數(shù)據(jù)244的存儲(chǔ)介質(zhì)230(例如一個(gè)或一個(gè)以上海量存儲(chǔ)設(shè)備)。其中,存儲(chǔ)器232和存儲(chǔ)介質(zhì)230可以是短暫存儲(chǔ)或持久存儲(chǔ)。存儲(chǔ)在存儲(chǔ)介質(zhì)230的程序可以包括一個(gè)或一個(gè)以上模塊(圖示未示出),每個(gè)模塊可以包括對(duì)服務(wù)器中的一系列指令操作。更進(jìn)一步地,中央處理器222可以設(shè)置為與存儲(chǔ)介質(zhì)230通信,在裝置200上執(zhí)行存儲(chǔ)介質(zhì)230中的一系列指令操作。裝置200還可以包括一個(gè)或一個(gè)以上電源226,一個(gè)或一個(gè)以上有線或無線網(wǎng)絡(luò)接口250,一個(gè)或一個(gè)以上輸入輸出接口258,和/或,一個(gè)或一個(gè)以上操作系統(tǒng)241,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。下述圖3、圖4、圖5、圖6、圖7、圖8和圖9所示實(shí)施例中所述的由集群的新增節(jié)點(diǎn)或集群內(nèi)節(jié)點(diǎn)所執(zhí)行的步驟可以基于該圖2所示的裝置結(jié)構(gòu)。
圖3是根據(jù)一示例性實(shí)施例示出的一種實(shí)現(xiàn)集群組建的方法的流程圖。集群內(nèi)部署節(jié)點(diǎn),該實(shí)現(xiàn)集群組建的方法應(yīng)用于集群的新增節(jié)點(diǎn)。
請(qǐng)參閱圖3,該實(shí)現(xiàn)集群組建的方法,可以包括以下步驟。
在步驟310中,新增節(jié)點(diǎn)通過組播發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求,新增節(jié)點(diǎn)與集群內(nèi)所部署的節(jié)點(diǎn)處于相同組播組。
其中,新增節(jié)點(diǎn)是相對(duì)于自身未加入的集群而言的,新增節(jié)點(diǎn)與集群中的全部節(jié)點(diǎn),或者部分節(jié)點(diǎn)處于相同組播組,因此,將借助于組播組而請(qǐng)求加入集群,以成為集群中的一節(jié)點(diǎn)。
新增節(jié)點(diǎn)通過組播即可向集群中的節(jié)點(diǎn)發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求,與新增節(jié)點(diǎn)處于相同組播組的節(jié)點(diǎn)將接收到這一網(wǎng)絡(luò)地址獲取請(qǐng)求,進(jìn)而使得新增節(jié)點(diǎn)能夠獲得集群中節(jié)點(diǎn)的響應(yīng)。
由此,將在新增節(jié)點(diǎn)與集群之間,借助于組播組使得二者能夠獲得一交互渠道,為新增節(jié)點(diǎn)加入集群提供突破口,而不需要額外的為新增節(jié)點(diǎn)基于集群進(jìn)行各種配置文件等的設(shè)定,靈活性獲得增強(qiáng),使得集群之外的任一節(jié)點(diǎn)都能夠作為新增節(jié)點(diǎn)而動(dòng)態(tài)加入集群。
具體而言,圖4是根據(jù)圖3對(duì)應(yīng)實(shí)施例示出的對(duì)步驟310的細(xì)節(jié)進(jìn)行描述的流程圖。該步驟310,如圖4所示,可以包括以下步驟。
在步驟311中,新增節(jié)點(diǎn)根據(jù)集群內(nèi)節(jié)點(diǎn)所在的組播組,配置相應(yīng)組播地址。
對(duì)于借助組播組所實(shí)現(xiàn)的新增節(jié)點(diǎn)加入集群而言,集群中組播組的實(shí)現(xiàn),簡單易行,并且可以根據(jù)需要而迅速實(shí)現(xiàn),一方面保證了新增節(jié)點(diǎn)能夠?qū)崿F(xiàn)集群加入的可靠性和穩(wěn)定性,另一方面,也使得集群的組建能夠動(dòng)態(tài)實(shí)現(xiàn)。
在步驟313中,按照組播地址在集群內(nèi)節(jié)點(diǎn)所在組播組內(nèi)進(jìn)行組播,以發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求。
其中,新增節(jié)點(diǎn)將通過組播地址發(fā)起組播,集群內(nèi)所有節(jié)點(diǎn)都會(huì)接收到新增節(jié)點(diǎn)發(fā)送的網(wǎng)絡(luò)地址獲取請(qǐng)求。
集群內(nèi),與新增節(jié)點(diǎn)處于相同組播組的節(jié)點(diǎn)在接收網(wǎng)絡(luò)地址獲取請(qǐng)求之后,都獲取自身的網(wǎng)絡(luò)地址,并封裝至網(wǎng)絡(luò)地址獲取請(qǐng)求所對(duì)應(yīng)的響應(yīng)包中,進(jìn)而向新增節(jié)點(diǎn)返回響應(yīng)包,由此,新增節(jié)點(diǎn)便能夠獲得集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。
通過此示例性實(shí)施例,便為新增節(jié)點(diǎn)中組播的進(jìn)行提供了具體實(shí)現(xiàn),對(duì)于不知曉集群所相關(guān)的任何信息,且獨(dú)立于集群之外的新增節(jié)點(diǎn)而言,通過此示例性實(shí)施例得以發(fā)生與集群之間的交互,進(jìn)而為后續(xù)加入集群的最終實(shí)現(xiàn)奠定基礎(chǔ)。
在步驟330中,通過集群內(nèi)節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)地址獲取請(qǐng)求的響應(yīng),獲得集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。
其中,集群內(nèi)與新增節(jié)點(diǎn)處于相同組播組的節(jié)點(diǎn),基于組播的實(shí)現(xiàn)機(jī)制,都必然會(huì)對(duì)接收的網(wǎng)絡(luò)地址獲取請(qǐng)求進(jìn)行響應(yīng)。與之相對(duì)應(yīng)的,新增節(jié)點(diǎn)會(huì)獲得集群內(nèi)至少一個(gè)節(jié)點(diǎn)的響應(yīng),進(jìn)而相應(yīng)獲得集群內(nèi)至少一個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。
進(jìn)一步的,圖5是圖3對(duì)應(yīng)實(shí)施例示出的對(duì)步驟330的細(xì)節(jié)進(jìn)行描述的流程圖。該步驟330,如圖5所示,可以包括以下步驟。
在步驟331中,接收集群內(nèi)節(jié)點(diǎn)響應(yīng)網(wǎng)絡(luò)地址獲取請(qǐng)求而返回的響應(yīng)包。
其中,如前所述的,集群內(nèi)每一節(jié)點(diǎn),其在接收網(wǎng)絡(luò)地址獲取請(qǐng)求之后都將對(duì)此進(jìn)行響應(yīng),向新增節(jié)點(diǎn)返回響應(yīng)包。響應(yīng)包即為節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)地址獲取請(qǐng)求的響應(yīng)。
響應(yīng)包攜帶了集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。新增節(jié)點(diǎn)在發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求之后,便會(huì)接收集群內(nèi)部分或者所有節(jié)點(diǎn)返回的響應(yīng)包,任一響應(yīng)包都有相應(yīng)節(jié)點(diǎn)的網(wǎng)絡(luò)地址,至此,便使得新增節(jié)點(diǎn)能夠獲得能夠?qū)崿F(xiàn)集群內(nèi)交互的網(wǎng)絡(luò)地址。
在步驟333中,進(jìn)行響應(yīng)包中網(wǎng)絡(luò)地址的提取,獲得集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。
其中,新增節(jié)點(diǎn)對(duì)接收的一個(gè)或多個(gè)響應(yīng)包分別進(jìn)行網(wǎng)絡(luò)地址的提取,獲得集群內(nèi)多個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)地址,任一網(wǎng)絡(luò)地址都能夠使得新增節(jié)點(diǎn)與集群內(nèi)的節(jié)點(diǎn)進(jìn)行交互。
在一個(gè)示例性實(shí)施例中,步驟330之前,該實(shí)現(xiàn)集群組建的方法,還包括以下步驟。
判斷集群內(nèi)節(jié)點(diǎn)是否在指定時(shí)間內(nèi)響應(yīng)網(wǎng)絡(luò)地址獲取請(qǐng)求,如果為否,則新增節(jié)點(diǎn)創(chuàng)建集群,并作為集群的控制節(jié)點(diǎn),如果為是,則執(zhí)行此步驟330。
其中,新增節(jié)點(diǎn)一旦發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求,便觸發(fā)計(jì)時(shí),以確認(rèn)在指定時(shí)間內(nèi)是否獲得集群內(nèi)節(jié)點(diǎn)的響應(yīng),如果為否,則說明集群未被創(chuàng)建,新增節(jié)點(diǎn)可以作為控制節(jié)點(diǎn)而創(chuàng)建集群,進(jìn)而等待其它新增節(jié)點(diǎn)加入集群。
控制節(jié)點(diǎn)用于控制集群內(nèi)新增節(jié)點(diǎn)的加入過程,以及集群內(nèi)各種功能的實(shí)現(xiàn)。對(duì)于一集群,存在著一控制節(jié)點(diǎn)。集群中每一節(jié)點(diǎn)都存儲(chǔ)了集群內(nèi)節(jié)點(diǎn)信息,集群內(nèi)節(jié)點(diǎn)信息至少記錄了集群內(nèi)部署的節(jié)點(diǎn)以及每一節(jié)點(diǎn)的網(wǎng)絡(luò)地址。由此,使得集群內(nèi)任一節(jié)點(diǎn)都具備成為控制節(jié)點(diǎn)的條件,進(jìn)而一旦控制節(jié)點(diǎn)發(fā)生故障,便可為集群配置新的控制節(jié)點(diǎn),一方面保證了集群內(nèi)的容災(zāi)性,另一方面也保證了集群的魯棒性。
如果新增節(jié)點(diǎn)在指定時(shí)間內(nèi)已獲得集群內(nèi)節(jié)點(diǎn)的響應(yīng),則由此響應(yīng)獲得網(wǎng)絡(luò)地址,即如步驟331至步驟333所示。
進(jìn)一步的,所指的是否在指定時(shí)間內(nèi)獲得集群內(nèi)節(jié)點(diǎn)的響應(yīng),即為是否在指定時(shí)間內(nèi)獲得集群內(nèi)節(jié)點(diǎn)的響應(yīng)包。發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求之后如果計(jì)時(shí)已經(jīng)達(dá)到指定時(shí)間,但仍未獲得響應(yīng),即接收到響應(yīng)包,則說明集群并未被組建,新增節(jié)點(diǎn)直接進(jìn)行集群的創(chuàng)建。
在步驟350中,通過網(wǎng)絡(luò)地址請(qǐng)求加入集群。
其中,由集群內(nèi)節(jié)點(diǎn)的響應(yīng)而獲得網(wǎng)絡(luò)地址之后,即可經(jīng)由獲得的網(wǎng)絡(luò)地址請(qǐng)求加入集群。如前所述的,集群內(nèi)節(jié)點(diǎn)響應(yīng)而獲得的網(wǎng)絡(luò)地址可能為一個(gè)或者多個(gè),在獲得的網(wǎng)絡(luò)地址為多個(gè)時(shí),將選取一網(wǎng)絡(luò)地址而請(qǐng)求加入集群。
在步驟370中,隨著集群內(nèi)新增節(jié)點(diǎn)加入操作被執(zhí)行而使新增節(jié)點(diǎn)獲得集群內(nèi)節(jié)點(diǎn)信息,完成新增節(jié)點(diǎn)的集群加入過程。
其中,集群內(nèi)任一節(jié)點(diǎn)接收到新增節(jié)點(diǎn)的加入集群請(qǐng)求之后,都將為新增節(jié)點(diǎn)執(zhí)行相應(yīng)的集群加入過程。在此應(yīng)當(dāng)說明的是,集群內(nèi)接收到加入集群請(qǐng)求的節(jié)點(diǎn),可以是集群的控制節(jié)點(diǎn),也可以集群內(nèi)普通節(jié)點(diǎn)。
接收到加入集群請(qǐng)求的節(jié)點(diǎn)是控制節(jié)點(diǎn),則可以直接執(zhí)行集群內(nèi)新增節(jié)點(diǎn)加入操作;接收到加入集群請(qǐng)求的節(jié)點(diǎn)是集群內(nèi)普通節(jié)點(diǎn),則需要將加入集群請(qǐng)求轉(zhuǎn)發(fā)至集群內(nèi)的控制節(jié)點(diǎn)。
集群內(nèi)新增節(jié)點(diǎn)操作,是指在集群內(nèi)為新增節(jié)點(diǎn)的加入而執(zhí)行的操作。在一個(gè)示例性實(shí)施例中,根據(jù)所接收加入集群請(qǐng)求的不同,所執(zhí)行的集群內(nèi)新增節(jié)點(diǎn)操作有所不同。具體而言,相對(duì)于控制節(jié)點(diǎn),集群內(nèi)的普通節(jié)點(diǎn)所執(zhí)行的集群內(nèi)新增節(jié)點(diǎn)操作增加了將加入集群請(qǐng)求轉(zhuǎn)發(fā)至控制節(jié)點(diǎn)的過程。
除此之外,無論何種節(jié)點(diǎn),在集群內(nèi)新增節(jié)點(diǎn)加入操作都將執(zhí)行向新增節(jié)點(diǎn)返回響應(yīng)包,以及向集群內(nèi)所有節(jié)點(diǎn)進(jìn)行新增節(jié)點(diǎn)信息的通知,對(duì)此,便完成新增節(jié)點(diǎn)的集群加入過程。
通過如上所述的示例性實(shí)施例,實(shí)現(xiàn)了集群內(nèi)節(jié)點(diǎn)的動(dòng)態(tài)部署,使得任一新增節(jié)點(diǎn)都可以靈活快速加入集群,降低了集群組建的復(fù)雜性,增加了集群管理的靈活性,任一新增節(jié)點(diǎn)都可以自動(dòng)加入到集群中。
圖6是根據(jù)圖3對(duì)應(yīng)實(shí)施例示出的對(duì)步驟350的細(xì)節(jié)進(jìn)行描述的流程圖。該步驟350,如圖6所示,可以包括以下步驟。
在步驟351中,隨機(jī)選取集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。
其中,如前所述的,由集群內(nèi)節(jié)點(diǎn)的響應(yīng)獲得了集群內(nèi)多個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)地址,在這些網(wǎng)絡(luò)地址中,進(jìn)行一網(wǎng)絡(luò)地址的隨機(jī)選取,隨機(jī)選取而獲得的網(wǎng)絡(luò)地址用于新增節(jié)點(diǎn)實(shí)現(xiàn)與集群內(nèi)節(jié)點(diǎn)的通信。
在步驟353中,按照隨機(jī)選取的網(wǎng)絡(luò)地址創(chuàng)建自身與集群內(nèi)節(jié)點(diǎn)之間的連接。
在步驟355中,通過創(chuàng)建的連接發(fā)起加入集群請(qǐng)求。
通過如上所述的示例性實(shí)施例,新增節(jié)點(diǎn)得以與集群內(nèi)一節(jié)點(diǎn)建立連接,而該節(jié)點(diǎn)作為集群內(nèi)的一節(jié)點(diǎn),能夠與集群內(nèi)的其它節(jié)點(diǎn)網(wǎng)絡(luò)互聯(lián),因此新增節(jié)點(diǎn)能夠經(jīng)由所連接的節(jié)點(diǎn)而迅速發(fā)起集群內(nèi)新增節(jié)點(diǎn)的加入過程,具備非常高的集群加入靈活性,不需要任何額外操作。
進(jìn)一步的,圖7是根據(jù)圖6對(duì)應(yīng)實(shí)施例示出的對(duì)步驟351的細(xì)節(jié)進(jìn)行描述的流程圖。在一個(gè)示例性實(shí)施例中,步驟351,如圖7所示,可以包括以下步驟。
在步驟3511中,獲取靜態(tài)配置的網(wǎng)絡(luò)地址,網(wǎng)絡(luò)地址對(duì)應(yīng)集群內(nèi)部署的所有節(jié)點(diǎn)中與新增節(jié)點(diǎn)未處于相同組播組的其它節(jié)點(diǎn)。
其中,靜態(tài)配置的網(wǎng)絡(luò)地址是指集群內(nèi)一個(gè)或者多個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。將集群內(nèi)一個(gè)或者多個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)地址固定地配置于新增節(jié)點(diǎn)中,以用于新增節(jié)點(diǎn)在后續(xù)發(fā)起進(jìn)行的節(jié)點(diǎn)連接和加入集群請(qǐng)求的發(fā)起。
進(jìn)行新增節(jié)點(diǎn)中靜態(tài)配置的網(wǎng)絡(luò)地址,也是對(duì)應(yīng)于集群中的節(jié)點(diǎn),但是,所對(duì)應(yīng)的節(jié)點(diǎn)與新增節(jié)點(diǎn)并未處理相同組播組。
在步驟3513中,在靜態(tài)配置的網(wǎng)絡(luò)地址和通過網(wǎng)絡(luò)地址獲取請(qǐng)求而獲得的網(wǎng)絡(luò)地址中,隨機(jī)選取一網(wǎng)絡(luò)地址。
其中,新增節(jié)點(diǎn)中,一方面通過進(jìn)行的靜態(tài)配置,存在著一些網(wǎng)絡(luò)地址,另一方面,通過組播發(fā)起的網(wǎng)絡(luò)地址獲取請(qǐng)求也存在著其它一些網(wǎng)絡(luò)地址。這兩類網(wǎng)絡(luò)地址,都能夠使得新增節(jié)點(diǎn)與集群中的節(jié)點(diǎn)通信。
因此,新增節(jié)點(diǎn)將在這兩類網(wǎng)絡(luò)地址中隨機(jī)選取一網(wǎng)絡(luò)地址。也就是說,在一個(gè)示例性實(shí)施例中,所進(jìn)行的網(wǎng)絡(luò)地址隨機(jī)選取不再限于通過組播而獲得的網(wǎng)絡(luò)地址,即便集群內(nèi)不存在與新增節(jié)點(diǎn)處于相同組播組的節(jié)點(diǎn)也能夠?qū)崿F(xiàn)集群的自動(dòng)加入,消除了局限性,減少了由于組播所帶來的約束,在組播和靜態(tài)網(wǎng)絡(luò)地址混合作用下實(shí)現(xiàn)集群組建。
在另一個(gè)示例性實(shí)施例中,對(duì)于靜態(tài)配置的網(wǎng)絡(luò)地址和通過網(wǎng)絡(luò)地址獲取請(qǐng)求而獲得的網(wǎng)絡(luò)地址,新增節(jié)點(diǎn)將使用一網(wǎng)絡(luò)地址建立連接,進(jìn)而創(chuàng)建集群,如果一連接失敗,則使用另一網(wǎng)絡(luò)地址,以此類推,若全部連接都失敗,則新增節(jié)點(diǎn)進(jìn)行集群的創(chuàng)建,自身將作為所創(chuàng)建集群的控制節(jié)點(diǎn)。
通過此示例性實(shí)施例,對(duì)于集群的組建和加入而言,保證了無論處于何種狀況均能夠?qū)崿F(xiàn)集群,集群組建的穩(wěn)定性得到增強(qiáng)。
與之相對(duì)應(yīng)的,隨著新增節(jié)點(diǎn)加入集群過程的發(fā)生,集群內(nèi)節(jié)點(diǎn)也將對(duì)此進(jìn)行響應(yīng),即相對(duì)實(shí)現(xiàn)一種實(shí)現(xiàn)集群組建的方法,其應(yīng)用于集群內(nèi)被部署的節(jié)點(diǎn)中。
圖8是根據(jù)一示例性實(shí)施例示出的一種實(shí)現(xiàn)集群組建的方法的流程圖。該實(shí)現(xiàn)集群組建的方法,如圖8所示,可以包括以下步驟。
在步驟510中,節(jié)點(diǎn)接收組播的網(wǎng)絡(luò)地址獲取請(qǐng)求,組播網(wǎng)絡(luò)地址獲取請(qǐng)求的節(jié)點(diǎn)是集群的新增節(jié)點(diǎn)。
其中,集群內(nèi)部署有節(jié)點(diǎn),集群內(nèi)部署的一節(jié)點(diǎn)處于組播組,新增節(jié)點(diǎn)也處于該組播組。集群內(nèi)與新增節(jié)點(diǎn)處于相同組播組的節(jié)點(diǎn)都將獲得網(wǎng)絡(luò)地址獲取請(qǐng)求。
在步驟530中,響應(yīng)網(wǎng)絡(luò)地址獲取請(qǐng)求而返回自身網(wǎng)絡(luò)地址。
其中,集群內(nèi)節(jié)點(diǎn)所進(jìn)行的網(wǎng)絡(luò)地址請(qǐng)求響應(yīng),是通過返回?cái)y帶自身網(wǎng)絡(luò)地址的響應(yīng)包實(shí)現(xiàn)。具體的,集群內(nèi)節(jié)點(diǎn)在其接收到網(wǎng)絡(luò)地址獲取請(qǐng)求之后,響應(yīng)網(wǎng)絡(luò)地址獲取請(qǐng)求進(jìn)行自身網(wǎng)絡(luò)地址的獲取,并打包,向新增節(jié)點(diǎn)返回?cái)y帶自身網(wǎng)絡(luò)地址的響應(yīng)包。
在步驟550中,隨著新增節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)地址請(qǐng)求加入集群,執(zhí)行新增節(jié)點(diǎn)加入操作。
其中,新增節(jié)點(diǎn)必然隨著網(wǎng)絡(luò)地址的獲得而向集群內(nèi)一節(jié)點(diǎn)發(fā)起加入集群請(qǐng)求,進(jìn)而使得集群內(nèi)節(jié)點(diǎn)被觸發(fā)來執(zhí)行新增節(jié)點(diǎn)加入操作。具體而言,新增節(jié)點(diǎn)加入操作由集群內(nèi)控制節(jié)點(diǎn)執(zhí)行,接收到加入集群請(qǐng)求的節(jié)點(diǎn)為控制節(jié)點(diǎn);當(dāng)然,也可由集群內(nèi)一普通節(jié)點(diǎn)和控制節(jié)點(diǎn)共同執(zhí)行,在接收到加入集群請(qǐng)求的節(jié)點(diǎn)為普通節(jié)點(diǎn)的情況下。
可以理解,對(duì)于新增節(jié)點(diǎn)加入集群的實(shí)現(xiàn),集群內(nèi)任一接收到其請(qǐng)求的節(jié)點(diǎn),都可以發(fā)起新增節(jié)點(diǎn)加入操作,不需要由特定節(jié)點(diǎn)發(fā)起,進(jìn)而使得集群內(nèi)節(jié)點(diǎn)對(duì)新增節(jié)點(diǎn)的請(qǐng)求加入不存在任何約束,靈活性高的同時(shí),保證集群內(nèi)節(jié)點(diǎn)的動(dòng)態(tài)變更。
圖9是根據(jù)圖8對(duì)應(yīng)實(shí)施例示出的對(duì)步驟550的細(xì)節(jié)進(jìn)行描述的流程圖。該步驟550,如圖9所示,可以包括以下步驟。
在步驟551中,節(jié)點(diǎn)通過新增節(jié)點(diǎn)進(jìn)行的連接創(chuàng)建而與新增節(jié)點(diǎn)進(jìn)行鏈接,新增節(jié)點(diǎn)中的連接創(chuàng)建是根據(jù)隨機(jī)選取的網(wǎng)絡(luò)地址執(zhí)行的。。
其中,如前所述的,新增節(jié)點(diǎn)在獲得集群內(nèi)若干個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)地址之后,將進(jìn)行網(wǎng)絡(luò)地址的隨機(jī)選取,從中獲取一網(wǎng)絡(luò)地址。通過獲取的這一網(wǎng)絡(luò)地址,集群內(nèi)相應(yīng)節(jié)點(diǎn)與新增節(jié)點(diǎn)實(shí)現(xiàn)二者之間的連接。
在步驟553中,通過連接進(jìn)行新增節(jié)點(diǎn)所發(fā)起加入集群請(qǐng)求的接收。
在步驟555中,接收加入集群請(qǐng)求的節(jié)點(diǎn)判斷自身是否為集群的控制節(jié)點(diǎn),如果為是,則執(zhí)行步驟557,如果為否,則執(zhí)行步驟559。
其中,接收到加入集群請(qǐng)求的節(jié)點(diǎn),需要對(duì)新增節(jié)點(diǎn)響應(yīng)。具體而言,將首先判斷自身是否是作為集群的控制節(jié)點(diǎn)而存在的,如果是,則直接分別對(duì)新增節(jié)點(diǎn)和集群內(nèi)所有節(jié)點(diǎn)執(zhí)行相應(yīng)信息的下發(fā),如果不是,則轉(zhuǎn)發(fā)加入集群請(qǐng)求至控制節(jié)點(diǎn),由控制節(jié)點(diǎn)來向新增節(jié)點(diǎn)和集群內(nèi)所有節(jié)點(diǎn)下發(fā)信息。
在步驟557中,向新增節(jié)點(diǎn)和集群內(nèi)所有節(jié)點(diǎn)執(zhí)行新增節(jié)點(diǎn)加入操作,使新增節(jié)點(diǎn)獲得集群內(nèi)節(jié)點(diǎn)信息,集群內(nèi)所有節(jié)點(diǎn)獲得新增節(jié)點(diǎn)信息,完成新增節(jié)點(diǎn)的集群加入過程。
其中,對(duì)于新增節(jié)點(diǎn),需要對(duì)其所發(fā)起的加入集群請(qǐng)求返回相應(yīng)響應(yīng)包,以便新增節(jié)點(diǎn)能夠獲得集群內(nèi)節(jié)點(diǎn)信息,加入集群;
對(duì)于集群內(nèi)節(jié)點(diǎn),如前所述的,每一節(jié)點(diǎn)都存儲(chǔ)有對(duì)應(yīng)于所有節(jié)點(diǎn)的集群內(nèi)節(jié)點(diǎn)信息,當(dāng)集群內(nèi)部署的節(jié)點(diǎn)發(fā)生變化,即新增節(jié)點(diǎn)的加入,故應(yīng)當(dāng)將新增節(jié)點(diǎn)信息向集群內(nèi)各節(jié)點(diǎn)下發(fā),進(jìn)而保證各節(jié)點(diǎn)所存儲(chǔ)信息是與集群的節(jié)點(diǎn)部署相適配,保證了信息存儲(chǔ)的完整性和動(dòng)態(tài)變更的及時(shí)性。
在步驟559中,將加入集群請(qǐng)求轉(zhuǎn)發(fā)至集群的控制節(jié)點(diǎn)。
通過如上所述的示例性實(shí)施例,在控制節(jié)點(diǎn)的作用下,當(dāng)然,在某一情況下,還存在著一普通節(jié)點(diǎn)的配合,集群的實(shí)現(xiàn)不再需要依賴于控制節(jié)點(diǎn)這一單點(diǎn),任一接收到加入集群請(qǐng)求的節(jié)點(diǎn),都為會(huì)新增節(jié)點(diǎn)執(zhí)行集群加入過程。
在另一個(gè)示例性實(shí)施例中,步驟550之后,該實(shí)現(xiàn)集群組建的方法還包括以下步驟。
集群內(nèi)控制節(jié)點(diǎn)發(fā)生故障之后,集群內(nèi)所有節(jié)點(diǎn)被觸發(fā)進(jìn)行新控制節(jié)點(diǎn)的選取。
其中,如前所述的,集群內(nèi)存在一控制節(jié)點(diǎn),但是集群內(nèi)所有節(jié)點(diǎn)都存儲(chǔ)著集群內(nèi)節(jié)點(diǎn)信息,集群內(nèi)節(jié)點(diǎn)信息反映了集群內(nèi)部署節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu),因此,控制節(jié)點(diǎn)一旦發(fā)生故障,使觸發(fā)進(jìn)行所有節(jié)點(diǎn)之間的新控制節(jié)點(diǎn)選取,例如,選取集群中存在時(shí)間最長的節(jié)點(diǎn)作為新控制節(jié)點(diǎn),或者采用其它一些給定算法實(shí)現(xiàn)新控制節(jié)點(diǎn)的選取,在此不進(jìn)行限定。
由此,便使得集群內(nèi)控制節(jié)點(diǎn)具備容災(zāi)性能,控制節(jié)點(diǎn)故障的發(fā)生,不再出現(xiàn)集群無法正常運(yùn)轉(zhuǎn)的情況,保證了集群的可靠性和健壯性。
結(jié)合具體應(yīng)用場景,描述新增節(jié)點(diǎn)中該實(shí)現(xiàn)集群組建的方法以及集群內(nèi)相應(yīng)節(jié)點(diǎn)的實(shí)現(xiàn)。如前所述的,該實(shí)現(xiàn)集群組建的方法可以應(yīng)用于任一網(wǎng)絡(luò)應(yīng)用下的服務(wù)器集群部署。
圖10是根據(jù)一示例性實(shí)施例示出的集群內(nèi)節(jié)點(diǎn)拓?fù)涫疽鈭D。如圖10所示,集群內(nèi)部署了節(jié)點(diǎn)1、……、節(jié)點(diǎn)n、……、節(jié)點(diǎn)x。
其中,除了節(jié)點(diǎn)x為控制節(jié)點(diǎn),其它節(jié)點(diǎn)均為普通節(jié)點(diǎn)。新增節(jié)點(diǎn)這是區(qū)別于這些節(jié)點(diǎn),處于集群之外的節(jié)點(diǎn)。
圖11是根據(jù)圖10對(duì)應(yīng)實(shí)施例示出的集群內(nèi)實(shí)現(xiàn)新增節(jié)點(diǎn)加入的應(yīng)用示意圖。在需要組建集群的應(yīng)用場景中,均可通過本發(fā)明的方案靈活快速的自動(dòng)組建集群。
具體的,如圖11所示,新增節(jié)點(diǎn)將執(zhí)行步驟610至步驟640的過程,通過集群內(nèi)節(jié)點(diǎn)的響應(yīng)而發(fā)起集群內(nèi)新增節(jié)點(diǎn)加入操作的執(zhí)行。
集群內(nèi)節(jié)點(diǎn),若是控制節(jié)點(diǎn),則執(zhí)行步驟680至步驟690的實(shí)現(xiàn)過程,若并非控制節(jié)點(diǎn),則需要執(zhí)行步驟670轉(zhuǎn)發(fā)至控制節(jié)點(diǎn)之后,方可執(zhí)行控制節(jié)點(diǎn)通過的實(shí)現(xiàn)過程。
由此,便完成了集群的自動(dòng)組建,并且能夠適應(yīng)于所存在的各種情況,具備非常高的自適應(yīng)性。
下述為本發(fā)明裝置實(shí)施例,可以用于執(zhí)行本發(fā)明上述實(shí)現(xiàn)集群組建的方法實(shí)施例。對(duì)于本發(fā)明裝置實(shí)施例中未披露的細(xì)節(jié),請(qǐng)參照本發(fā)明實(shí)現(xiàn)集群組建的方法實(shí)施例。
圖12是根據(jù)一示例性實(shí)施例示出的一種實(shí)現(xiàn)集群組建的裝置的框圖。集群內(nèi)部署節(jié)點(diǎn),該實(shí)現(xiàn)集群組建的裝置應(yīng)用于集群的新增節(jié)點(diǎn),如圖12所示,該裝置可以包括但不限于:組播模塊710、響應(yīng)獲得模塊730、請(qǐng)求加入模塊750和節(jié)點(diǎn)信息獲得模塊770。
組播模塊710,用于通過組播發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求,新增節(jié)點(diǎn)與集群內(nèi)所部署的節(jié)點(diǎn)處于相同組播組。
響應(yīng)獲得模塊730,用于通過集群內(nèi)節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)地址獲取請(qǐng)求的響應(yīng),獲得集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。
請(qǐng)求加入模塊750,用于通過網(wǎng)絡(luò)地址請(qǐng)求加入集群。
節(jié)點(diǎn)信息獲得模塊770,用于隨著集群內(nèi)新增節(jié)點(diǎn)加入操作被執(zhí)行而使新增節(jié)點(diǎn)獲得集群內(nèi)節(jié)點(diǎn)信息,完成新增節(jié)點(diǎn)的集群加入過程。
在另一個(gè)示例性實(shí)施例中,該實(shí)現(xiàn)集群組建的裝置,還包括但不限于:集群創(chuàng)建模塊。該集群創(chuàng)建模塊用于判斷集群內(nèi)節(jié)點(diǎn)是否在指定時(shí)間內(nèi)響應(yīng)網(wǎng)絡(luò)地址獲取請(qǐng)求,如果為否,則創(chuàng)建集群,并使所在新增節(jié)點(diǎn)作為集群的控制節(jié)點(diǎn),如果為是,則響應(yīng)獲得模塊730被觸發(fā)。
圖13是根據(jù)圖12對(duì)應(yīng)實(shí)施例示出的對(duì)請(qǐng)求加入模塊750的細(xì)節(jié)進(jìn)行描述的框圖。獲得的網(wǎng)絡(luò)地址為多個(gè),如圖13所示,該請(qǐng)求加入模塊750,可以包括但不限于:地址隨機(jī)選取單元751、連接創(chuàng)建單元753和加入請(qǐng)求發(fā)起單元755。
地址隨機(jī)選取單元751,用于隨機(jī)選取集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。
連接創(chuàng)建單元753,用于按照隨機(jī)選取的網(wǎng)絡(luò)地址創(chuàng)建自身與集群內(nèi)節(jié)點(diǎn)之間的連接。
加入請(qǐng)求發(fā)起單元755,用于通過創(chuàng)建的連接發(fā)起加入集群請(qǐng)求。
與之相對(duì)應(yīng)的,隨著新增節(jié)點(diǎn)加入集群過程的發(fā)生,集群內(nèi)節(jié)點(diǎn)也將對(duì)此進(jìn)行響應(yīng),即相對(duì)實(shí)現(xiàn)一種實(shí)現(xiàn)集群組建的裝置,其應(yīng)用于集群內(nèi)被部署的節(jié)點(diǎn)中。
圖14是根據(jù)一示例性實(shí)施例示出的被應(yīng)用于集群內(nèi)被部署節(jié)點(diǎn)的一種實(shí)現(xiàn)集群組建的裝置的框圖。該實(shí)現(xiàn)集群組建的裝置,如圖14所示,可以包括但不限于:組播接收模塊810、請(qǐng)求響應(yīng)模塊830和操作執(zhí)行模塊850。
組播接收模塊810,用于接收組播的網(wǎng)絡(luò)地址獲取請(qǐng)求,組播網(wǎng)絡(luò)地址獲取請(qǐng)求的節(jié)點(diǎn)是集群的新增節(jié)點(diǎn)。
請(qǐng)求響應(yīng)模塊830,用于響應(yīng)網(wǎng)絡(luò)地址獲取請(qǐng)求而返回自身網(wǎng)絡(luò)地址。
操作執(zhí)行模塊850,用于隨著新增節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)地址請(qǐng)求加入集群,執(zhí)行新增節(jié)點(diǎn)加入操作。
圖15是根據(jù)圖14對(duì)應(yīng)實(shí)施例示出的對(duì)操作執(zhí)行模塊的細(xì)節(jié)進(jìn)行描述的框圖。該操作執(zhí)行模塊850,如圖15所示,可以包括但不限于:連接被創(chuàng)建單元851、加入請(qǐng)求接收單元853、控制節(jié)點(diǎn)判斷單元854、加入過程執(zhí)行單元855和請(qǐng)求轉(zhuǎn)發(fā)單元856。
連接被創(chuàng)建單元851,用于通過新增節(jié)點(diǎn)進(jìn)行的連接創(chuàng)建而與新增節(jié)點(diǎn)進(jìn)行鏈接,新增節(jié)點(diǎn)中的連接創(chuàng)建是根據(jù)隨機(jī)選取的網(wǎng)絡(luò)地址執(zhí)行的。
加入請(qǐng)求接收單元853,用于通過連接進(jìn)行新增節(jié)點(diǎn)所發(fā)起加入集群請(qǐng)求的接收。
控制節(jié)點(diǎn)判斷單元854,用于接收加入集群請(qǐng)求的節(jié)點(diǎn)判斷自身是否為集群的控制節(jié)點(diǎn),如果為是,則觸發(fā)加入過程執(zhí)行單元855,如果為否,則觸發(fā)請(qǐng)求轉(zhuǎn)發(fā)單元856。
加入過程執(zhí)行單元855用于向新增節(jié)點(diǎn)和集群內(nèi)所有節(jié)點(diǎn)執(zhí)行新增節(jié)點(diǎn)加入操作,使新增節(jié)點(diǎn)獲得集群內(nèi)節(jié)點(diǎn)信息,集群內(nèi)所有節(jié)點(diǎn)獲得新增節(jié)點(diǎn)信息,完成所新增節(jié)點(diǎn)的集群加入過程。
請(qǐng)求轉(zhuǎn)發(fā)單元856,用于如果接收所述加入集群請(qǐng)求的節(jié)點(diǎn)自身不為集群的控制節(jié)點(diǎn),則將加入集群請(qǐng)求轉(zhuǎn)發(fā)至集群的控制節(jié)點(diǎn)。
在另一個(gè)示例性實(shí)施例中,實(shí)現(xiàn)集群組建的裝置,還包括但不限于:控制節(jié)點(diǎn)選取模塊。該控制節(jié)點(diǎn)選取模塊用于集群內(nèi)控制節(jié)點(diǎn)發(fā)生故障之后,集群內(nèi)所有節(jié)點(diǎn)被觸發(fā)進(jìn)行新控制節(jié)點(diǎn)的選取。
可選的,本發(fā)明還提供一種節(jié)點(diǎn),執(zhí)行圖3、圖4、圖5、圖6和圖7任一所示的實(shí)現(xiàn)集群組建的方法的全部或者部分步驟,集群內(nèi)部署節(jié)點(diǎn),該實(shí)現(xiàn)集群組建的方法應(yīng)用于集群的新增節(jié)點(diǎn)。所述裝置包括:
處理器;
用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
其中,所述處理器被配置為執(zhí)行:
所述新增節(jié)點(diǎn)通過組播發(fā)起網(wǎng)絡(luò)地址獲取請(qǐng)求,所述新增節(jié)點(diǎn)與所述集群內(nèi)所部署的節(jié)點(diǎn)處于相同組播組;
通過集群內(nèi)節(jié)點(diǎn)對(duì)所述網(wǎng)絡(luò)地址獲取請(qǐng)求的響應(yīng),獲得所述集群內(nèi)節(jié)點(diǎn)的網(wǎng)絡(luò)地址;
通過所述網(wǎng)絡(luò)地址請(qǐng)求加入所述集群;
隨著集群內(nèi)新增節(jié)點(diǎn)加入操作被執(zhí)行而使所述新增節(jié)點(diǎn)獲得集群內(nèi)節(jié)點(diǎn)信息,完成所述新增節(jié)點(diǎn)的集群加入過程。
該實(shí)施例中的裝置的處理器執(zhí)行操作的具體方式已經(jīng)在有關(guān)該實(shí)現(xiàn)集群組建的方法的實(shí)施例中執(zhí)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
可選的,本發(fā)明還提供一種節(jié)點(diǎn),執(zhí)行圖8和圖9任一所示的實(shí)現(xiàn)集群組建的方法的全部或者部分步驟,集群內(nèi)部署節(jié)點(diǎn),該方法應(yīng)用于集群內(nèi)被部署的節(jié)點(diǎn)。所述裝置包括:
處理器;
用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
其中,所述處理器被配置為執(zhí)行:
所述節(jié)點(diǎn)接收組播的網(wǎng)絡(luò)地址獲取請(qǐng)求,組播所述網(wǎng)絡(luò)地址獲取請(qǐng)求的節(jié)點(diǎn)是所述集群的新增節(jié)點(diǎn);
響應(yīng)所述網(wǎng)絡(luò)地址獲取請(qǐng)求而返回自身網(wǎng)絡(luò)地址;
隨著所述新增節(jié)點(diǎn)根據(jù)所述網(wǎng)絡(luò)地址請(qǐng)求加入所述集群,執(zhí)行新增節(jié)點(diǎn)加入操作。
該實(shí)施例中的裝置的處理器執(zhí)行操作的具體方式已經(jīng)在有關(guān)該實(shí)現(xiàn)集群組建的方法的實(shí)施例中執(zhí)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍執(zhí)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。