本申請涉及計算機技術(shù)領(lǐng)域,公開了一種分布式仲裁集群中動態(tài)改變集群規(guī)模的方法及裝置,用以解決在動態(tài)變更分布式仲裁集群規(guī)模的過程中出現(xiàn)雙主、多主或無主的問題。該方法為:主節(jié)點接收改變集群規(guī)模的指令,確定所述分布式仲裁集群在改變集群規(guī)模后包括的M個節(jié)點,M為正整數(shù),所述M個節(jié)點中包括所述主節(jié)點和(M?1)個從節(jié)點;所述主節(jié)點將所述指令轉(zhuǎn)發(fā)至(M?1)個從節(jié)點,并接收所述(M?1)個從節(jié)點返回的確認響應,所述確認響應用于表征同意所述改變集群規(guī)模;若在一個心跳周期內(nèi),所述主節(jié)點接收到L個從節(jié)點發(fā)送的心跳信息,則執(zhí)行所述改變集群規(guī)模的操作,
【技術(shù)實現(xiàn)步驟摘要】
一種分布式仲裁集群中動態(tài)改變集群規(guī)模的方法及裝置
本申請涉及計算機
,特別涉及一種分布式仲裁集群中動態(tài)改變集群規(guī)模的方法及裝置。
技術(shù)介紹
在多處理系統(tǒng)中,多個設(shè)備或模塊可能同時申請對總線的使用權(quán),為避免產(chǎn)生總線沖突,需由總線仲裁機構(gòu)合理地控制和管理系統(tǒng)中需要占用總線的申請者,在多個申請者同時提出總線請求時,以一定的仲裁方法判斷應獲得對總線使用權(quán)的申請者。仲裁方法可分為集中式仲裁和分布式仲裁。集中式仲裁利用單個仲裁器分配多個處理機的請求。在分布式仲裁中,每個仲裁節(jié)點都有自己的仲裁器。仲裁節(jié)點可以簡稱為節(jié)點。分布式仲裁所在的系統(tǒng)可以稱為分布式系統(tǒng),分布式系統(tǒng)包含若干個節(jié)點,這若干個節(jié)點形成仲裁集群。仲裁集群可以整合資源,作為一個整體對外提供服務。仲裁集群中最多只允許有一個主節(jié)點。目前,有多種仲裁算法選取主節(jié)點,例如FastLeader選舉算法、Raft選舉算法等。在分布式系統(tǒng)運行過程中,用戶可能需要動態(tài)改變仲裁集群的規(guī)模,即加入節(jié)點或刪除節(jié)點。目前,分布式系統(tǒng)中的仲裁集群一般不支持規(guī)模的變更;或者限制性的支持規(guī)模變更;或者,在規(guī)模變更過程中出現(xiàn)“雙主”或者“多主”或者“無主”的問題,其中,“雙主”是指兩個主節(jié)點,“多主”是指兩個以上主節(jié)點,“無主”是指沒有主節(jié)點。
技術(shù)實現(xiàn)思路
本申請實施例提供一種分布式仲裁集群中動態(tài)改變集群規(guī)模的方法及裝置,用以解決在動態(tài)變更分布式仲裁集群規(guī)模的過程中出現(xiàn)雙主、多主或無主的問題。本申請實施例提供的具體技術(shù)方案如下:第一方面,提供一種分布式仲裁集群中動態(tài)改變集群規(guī)模的方法,所述分布式仲裁集群中包括主節(jié)點,通過在集群中所有節(jié)點同意變更操作之后,判斷是否能夠維持自身主節(jié)點的身份,其中,維持主節(jié)點的條件為包括自身在內(nèi)的一半節(jié)點維持主從節(jié)點之間的信號連接,主節(jié)點在確定能夠維持主節(jié)點的身份之后,再固化改變集群規(guī)模的操作。這樣能夠保證在改變集群規(guī)模的過程中保持主節(jié)點角色不變,且獨立設(shè)置維持主的條件,與升主條件分離,增強了系統(tǒng)的可用性,且保證在系統(tǒng)擴容過程中不會失主。在一個可能的設(shè)計中,所述主節(jié)點接收改變集群規(guī)模的指令,確定所述分布式仲裁集群在改變集群規(guī)模后包括的M個節(jié)點,M為正整數(shù),所述M個節(jié)點中包括所述主節(jié)點和(M-1)個從節(jié)點,所述主節(jié)點將所述指令轉(zhuǎn)發(fā)至(M-1)個從節(jié)點,并接收所述(M-1)個從節(jié)點返回的確認響應,所述確認響應用于表征同意所述改變集群規(guī)模,若在一個心跳周期內(nèi),所述主節(jié)點接收到L個從節(jié)點發(fā)送的心跳信息,則執(zhí)行所述改變集群規(guī)模的操作,L為正整數(shù)。這樣,能夠?qū)崿F(xiàn)單節(jié)點擴容、多節(jié)點擴容和縮容等各種不同的應用場景,在各個改變集群規(guī)模的應用場景中均不會出現(xiàn)無主或多主的情況。在一個可能的設(shè)計中,所述主節(jié)點接收改變集群規(guī)模的指令,可以通過以下方式實現(xiàn):所述主節(jié)點接收增加第一節(jié)點的指令,或者,所述主節(jié)點接收刪除第二節(jié)點的指令,其中,所述第二節(jié)點為與所述主節(jié)點不同的節(jié)點,所述分布式仲裁集群中不包括所述第一節(jié)點、且包括所述第二節(jié)點。在一個可能的設(shè)計中,任一節(jié)點包含權(quán)限屬性,所述權(quán)限屬性用于表征節(jié)點是否具有被選舉權(quán)限,所述權(quán)限屬性允許動態(tài)調(diào)整,其中,在執(zhí)行所述改變集群規(guī)模的操作之前,所述第一節(jié)點的權(quán)限屬性為不具有被選舉權(quán)限。避免在增加第一節(jié)點后出現(xiàn)無主或多主的情況。在一個可能的設(shè)計中,在所述主節(jié)點接收刪除第二節(jié)點的指令之前,所述第二節(jié)點與所述M個節(jié)點的通信連接狀態(tài)為斷開;或者,在所述主節(jié)點接收刪除第二節(jié)點的指令之前,所述第二節(jié)點的權(quán)限屬性設(shè)置為不具有被選舉權(quán)限。避免刪除的第二節(jié)點為主節(jié)點時,導致分布式系統(tǒng)出現(xiàn)故障。在一個可能的設(shè)計中,所述主節(jié)點包含配置信息,所述配置信息包括升主條件和維持主條件;所述升主條件為:在所述分布式仲裁集群中包括N個節(jié)點時,K個節(jié)點同意所述主節(jié)點升主,其中,K、N均為正整數(shù);所述維持主條件為:在所述分布式仲裁集群中包括N個節(jié)點時,在一個心跳周期內(nèi),所述主節(jié)點接收到P個從節(jié)點的心跳信息,其中,P、N均為正整數(shù)。將升主條件和維持主條件隔離開,增強系統(tǒng)的可用性,且保證擴容過程中不會失主。第二方面,提供一種分布式仲裁集群中動態(tài)改變集群規(guī)模的裝置,該裝置具有實現(xiàn)上述第一方面和第一方面的任一種可能的設(shè)計中主節(jié)點行為的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應的模塊。在一個可能的設(shè)計中,該裝置的結(jié)構(gòu)包括收發(fā)器、存儲器和處理器,其中,所述存儲器用于存儲一組程序,所述處理器用于調(diào)用所述存儲器存儲的程序以執(zhí)行如上述第一方面和第一方面的任一種可能的設(shè)計中所述的方法。第三方面,提供一種分布式仲裁集群,所述分布式仲裁集群中包括如上述第一方面和第一方面的任一種可能的設(shè)計中的主節(jié)點。第四方面,提供了一種計算機存儲介質(zhì),用于儲存為上述方面所述的主節(jié)點所用的計算機軟件指令,其包含用于執(zhí)行上述方面所設(shè)計的程序。附圖說明圖1為本申請實施例中分布式仲裁集群的架構(gòu)示意圖;圖2為本申請實施例中分布式仲裁集群中動態(tài)改變集群規(guī)模的方法流程示意圖;圖3為本申請實施例中單節(jié)點擴容的擴容流程示意圖;圖4為本申請實施例中多節(jié)點擴容的擴容流程示意圖;圖5為本申請實施例中縮容的流程示意圖之一;圖6為本申請實施例中縮容的流程示意圖之二;圖7為本申請實施例中分布式仲裁集群中動態(tài)改變集群規(guī)模的裝置結(jié)構(gòu)示意圖之一;圖8為本申請實施例中分布式仲裁集群中動態(tài)改變集群規(guī)模的裝置結(jié)構(gòu)示意圖之二。具體實施方式下面將結(jié)合附圖,對本申請實施例進行詳細描述。本申請實施例可以應用于分布式系統(tǒng),可以但不限于應用于分布式仲裁集群,以下描述中,分布式仲裁集群可以簡稱為集群。在分布式系統(tǒng)中,用戶需要動態(tài)變更仲裁集群的規(guī)模,本申請實施例通過在集群中所有節(jié)點同意變更操作之后,判斷是否能夠維持自身主節(jié)點的身份,其中,維持主節(jié)點的條件為包括自身在內(nèi)的一半節(jié)點維持主從節(jié)點之間的信號連接,主節(jié)點在確定能夠維持主節(jié)點的身份之后,再固化改變集群規(guī)模的操作。這樣能夠保證在改變集群規(guī)模的過程中保持主節(jié)點角色不變,且獨立設(shè)置維持主的條件,與升主條件分離,增強了系統(tǒng)的可用性,且保證在系統(tǒng)擴容過程中不會失主。如圖1所示,本申請實施例中分布式仲裁集群100的規(guī)模可以包括一個節(jié)點,或者包括兩個或兩個以上節(jié)點。分布式仲裁集群100中包括一個主節(jié)點101。如果集群規(guī)模大于等于兩個節(jié)點,則分布式仲裁集群100中除了包括一個主節(jié)點101,還包括至少一個從節(jié)點102。分布式仲裁集群100可以整合資源,作為一個整體對外提供服務。分布式仲裁集群100中最多只允許有一個主節(jié)點101。主節(jié)點101是各個節(jié)點選舉獲得的,例如,選取主節(jié)點的仲裁算法可以包括FastLeader選舉算法、Raft選舉算法,本申請不作限定。本申請實施例中,分布式仲裁集群100中的每個節(jié)點都配置一些本地屬性,包括:節(jié)點的身份標識(即ID),該身份標識具有唯一性,即一個節(jié)點對應一個唯一的身份標識;通信地址,例如網(wǎng)際協(xié)議(InternetProtocol,IP)地址,用于與其他節(jié)點進行通信所依據(jù)的地址;權(quán)限屬性,該權(quán)限屬性用于表征節(jié)點是否具有被選舉權(quán)限,具有被選舉權(quán)限的節(jié)點在投票選主節(jié)點時能夠投票給自身,而沒有被選舉權(quán)限的節(jié)點在投票選主節(jié)點時不能投本文檔來自技高網(wǎng)...

【技術(shù)保護點】
一種分布式仲裁集群中動態(tài)改變集群規(guī)模的方法,其特征在于,所述分布式仲裁集群中包括主節(jié)點,所述方法包括:所述主節(jié)點接收改變集群規(guī)模的指令,確定所述分布式仲裁集群在改變集群規(guī)模后包括的M個節(jié)點,M為正整數(shù),所述M個節(jié)點中包括所述主節(jié)點和(M?1)個從節(jié)點;所述主節(jié)點將所述指令轉(zhuǎn)發(fā)至(M?1)個從節(jié)點,并接收所述(M?1)個從節(jié)點返回的確認響應,所述確認響應用于表征同意所述改變集群規(guī)模;若在一個心跳周期內(nèi),所述主節(jié)點接收到L個從節(jié)點發(fā)送的心跳信息,則執(zhí)行所述改變集群規(guī)模的操作,
【技術(shù)特征摘要】
1.一種分布式仲裁集群中動態(tài)改變集群規(guī)模的方法,其特征在于,所述分布式仲裁集群中包括主節(jié)點,所述方法包括:所述主節(jié)點接收改變集群規(guī)模的指令,確定所述分布式仲裁集群在改變集群規(guī)模后包括的M個節(jié)點,M為正整數(shù),所述M個節(jié)點中包括所述主節(jié)點和(M-1)個從節(jié)點;所述主節(jié)點將所述指令轉(zhuǎn)發(fā)至(M-1)個從節(jié)點,并接收所述(M-1)個從節(jié)點返回的確認響應,所述確認響應用于表征同意所述改變集群規(guī)模;若在一個心跳周期內(nèi),所述主節(jié)點接收到L個從節(jié)點發(fā)送的心跳信息,則執(zhí)行所述改變集群規(guī)模的操作,L為正整數(shù)。2.如權(quán)利要求1所述的方法,其特征在于,所述主節(jié)點接收改變集群規(guī)模的指令,包括:所述主節(jié)點接收增加第一節(jié)點的指令,或者,所述主節(jié)點接收刪除第二節(jié)點的指令,所述第二節(jié)點為與所述主節(jié)點不同的節(jié)點;其中,所述分布式仲裁集群中不包括所述第一節(jié)點、且包括所述第二節(jié)點。3.如權(quán)利要求2所述的方法,其特征在于,任一節(jié)點包含權(quán)限屬性,所述權(quán)限屬性用于表征節(jié)點是否具有被選舉權(quán)限,所述權(quán)限屬性允許動態(tài)調(diào)整;其中,在執(zhí)行所述改變集群規(guī)模的操作之前,所述第一節(jié)點的權(quán)限屬性為不具有被選舉權(quán)限。4.如權(quán)利要求3所述的方法,其特征在于,在所述主節(jié)點接收刪除第二節(jié)點的指令之前,所述第二節(jié)點與所述M個節(jié)點的通信連接狀態(tài)為斷開;或者,在所述主節(jié)點接收刪除第二節(jié)點的指令之前,所述第二節(jié)點的權(quán)限屬性設(shè)置為不具有被選舉權(quán)限。5.如權(quán)利要求1~4任一項所述的方法,其特征在于,所述主節(jié)點包含配置信息,所述配置信息包括升主條件和維持主條件;所述升主條件為:在所述分布式仲裁集群中包括N個節(jié)點時,K個節(jié)點同意所述主節(jié)點升主,其中,K、N均為正整數(shù);所述維持主條件為:在所述分布式仲裁集群中包括N個節(jié)點時,在一個心跳周期內(nèi),所述主節(jié)點接收到P個從節(jié)點的心跳信息,其中,P、N均為正整數(shù)...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:章立剛,盧忠亞,謝江帆,
申請(專利權(quán))人:北京華為數(shù)字技術(shù)有限公司,
類型:發(fā)明
國別省市:北京,11
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。