本公開涉及云服務(wù),尤其涉及一種集群選舉方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、raft算法是分布式系統(tǒng)領(lǐng)域中一種關(guān)鍵的一致性算法,其在傳統(tǒng)一致性算法的基礎(chǔ)上,提供了簡(jiǎn)潔高效的途徑來確保集群達(dá)成一致狀態(tài)。但是raft算法也有一些固有的問題,包括:1.n個(gè)偶數(shù)節(jié)點(diǎn)集群可用性低于(n-1)個(gè)奇數(shù)節(jié)點(diǎn)集群,具體地,倘若一個(gè)節(jié)點(diǎn)的可用性為90%,單節(jié)點(diǎn)的raft集群可用性便是90%,而雙節(jié)點(diǎn)的raft集群要求兩個(gè)節(jié)點(diǎn)同時(shí)可用,經(jīng)計(jì)算整體可用性僅81%,反而低于單節(jié)點(diǎn)情形。2.主節(jié)點(diǎn)會(huì)依據(jù)check?quorum機(jī)制自動(dòng)切換角色,一旦主節(jié)點(diǎn)與集群中超過半數(shù)節(jié)點(diǎn)失去連通,就會(huì)降級(jí)為從節(jié)點(diǎn),導(dǎo)致連接改變;3.在節(jié)點(diǎn)變更操作時(shí),如新增服務(wù)器后恰巧有舊節(jié)點(diǎn)宕機(jī),新節(jié)點(diǎn)追趕日志期間,由于無法滿足超過半數(shù)節(jié)點(diǎn)這一條件,整個(gè)raft算法就會(huì)陷入不可用狀態(tài)。
技術(shù)實(shí)現(xiàn)思路
1、本公開提供了一種集群選舉方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
2、根據(jù)本公開的第一方面,提供了一種集群選舉方法,所述集群包括至少一個(gè)候選節(jié)點(diǎn)和至少一個(gè)投票節(jié)點(diǎn);所述方法應(yīng)用于所述候選節(jié)點(diǎn),所述方法包括:
3、向所述集群中除自身以外的其它節(jié)點(diǎn)發(fā)起投票請(qǐng)求;
4、接收來自所述其它節(jié)點(diǎn)的第一投票結(jié)果;
5、確定所述候選節(jié)點(diǎn)自身的慣性系數(shù),根據(jù)所述慣性系數(shù)和所述第一投票結(jié)果共同作用,確定自身是否成為主節(jié)點(diǎn);
6、其中,所述慣性系數(shù)基于上一輪選舉結(jié)果設(shè)置,若上一輪選舉結(jié)果中所述候選節(jié)點(diǎn)為主節(jié)點(diǎn),則設(shè)置其自身的所述慣性系數(shù)為大于0的目標(biāo)值,若上一輪選舉結(jié)果中所述候選節(jié)點(diǎn)為從節(jié)點(diǎn),則設(shè)置所述慣性系數(shù)為0。
7、根據(jù)本公開的第二方面,提供了一種集群選舉裝置,所述集群包括至少一個(gè)候選節(jié)點(diǎn)和至少一個(gè)投票節(jié)點(diǎn);所述裝置應(yīng)用于所述候選節(jié)點(diǎn),所述裝置包括:
8、發(fā)送模塊,用于向所述集群中除自身以外的其它節(jié)點(diǎn)發(fā)起投票請(qǐng)求;
9、接收模塊,用于接收來自所述其它節(jié)點(diǎn)的第一投票結(jié)果;
10、處理模塊,用于確定所述候選節(jié)點(diǎn)自身的慣性系數(shù),根據(jù)所述慣性系數(shù)和所述第一投票結(jié)果共同作用,確定自身是否成為主節(jié)點(diǎn);
11、其中,所述慣性系數(shù)基于上一輪選舉結(jié)果設(shè)置,若上一輪選舉結(jié)果中所述候選節(jié)點(diǎn)為主節(jié)點(diǎn),則設(shè)置其自身的所述慣性系數(shù)為大于0的目標(biāo)值,若上一輪選舉結(jié)果中所述候選節(jié)點(diǎn)為從節(jié)點(diǎn),則設(shè)置所述慣性系數(shù)為0。
12、根據(jù)本公開的第三方面,提供了一種電子設(shè)備,包括:
13、至少一個(gè)處理器;以及
14、與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
15、所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行本公開所述的方法。
16、根據(jù)本公開的第四方面,提供了一種存儲(chǔ)有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)指令用于使所述計(jì)算機(jī)執(zhí)行本公開所述的方法。
1.一種集群選舉方法,其特征在于,所述集群包括至少一個(gè)候選節(jié)點(diǎn)和至少一個(gè)投票節(jié)點(diǎn);所述方法應(yīng)用于所述候選節(jié)點(diǎn),所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述慣性系數(shù)和所述第一投票結(jié)果共同作用,確定自身是否成為主節(jié)點(diǎn),包括:
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,若所述候選節(jié)點(diǎn)成為主節(jié)點(diǎn),所述方法還包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,若所述候選節(jié)點(diǎn)成為主節(jié)點(diǎn)后發(fā)生主節(jié)點(diǎn)故障,所述方法還包括:
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述確定自身是否成為主節(jié)點(diǎn),還包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,若所述候選節(jié)點(diǎn)成為從節(jié)點(diǎn),所述方法還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述投票請(qǐng)求包括:所述候選節(jié)點(diǎn)確定的領(lǐng)導(dǎo)選舉周期;
8.一種集群選舉裝置,其特征在于,所述集群包括至少一個(gè)候選節(jié)點(diǎn)和至少一個(gè)投票節(jié)點(diǎn);所述裝置應(yīng)用于所述候選節(jié)點(diǎn),所述裝置包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種存儲(chǔ)有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)指令用于使所述計(jì)算機(jī)執(zhí)行: