本發(fā)明屬于物聯(lián)網(wǎng)通信,尤其涉及一種節(jié)點選舉方法、系統(tǒng)及節(jié)點遞補方法、系統(tǒng)。
背景技術(shù):
1、分布式系統(tǒng)由多個節(jié)點組成,這些節(jié)點通過網(wǎng)絡(luò)相互連接,共同提供服務(wù)。每個節(jié)點可能承擔(dān)不同的角色,如主節(jié)點、從節(jié)點或觀察者。
2、在分布式系統(tǒng)中,節(jié)點選舉是確保高可用性和一致性的關(guān)鍵機制。選舉算法決定了哪個節(jié)點將承擔(dān)主節(jié)點的責(zé)任。
3、現(xiàn)有選舉算法:
4、bully算法:基于節(jié)點id的大小進行選舉,可能導(dǎo)致頻繁的重新選舉和存儲大量全局信息。
5、raft算法:基于多數(shù)派投票機制,需要節(jié)點間廣泛的通信,可能導(dǎo)致通信量大。
6、zab算法:結(jié)合了節(jié)點id和數(shù)據(jù)id,提高了數(shù)據(jù)一致性,但算法復(fù)雜,可能導(dǎo)致選舉時間長和廣播風(fēng)暴。
7、目前缺乏一種輕量化的節(jié)點選舉方法。
技術(shù)實現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問題在于針對上述現(xiàn)有技術(shù)中的不足,提供節(jié)點選舉方法、系統(tǒng)及節(jié)點遞補方法、系統(tǒng),旨在解決現(xiàn)有算法中存在的存儲負(fù)擔(dān)重、通信量大、選舉速度慢、穩(wěn)定性差、算法復(fù)雜性高、對故障響應(yīng)能力弱、數(shù)據(jù)一致性難以保證等問題。
2、本發(fā)明第一方面公開了一種節(jié)點選舉方法,所述方法應(yīng)用于假中心節(jié)點,包括:假中心節(jié)點接收從各個待選節(jié)點發(fā)送的待選優(yōu)先級列表,并記錄每個待選節(jié)點的tcp丟包率和時延;
3、假中心節(jié)點將tcp丟包率為0%的待選節(jié)點的優(yōu)先級暫設(shè)為g,將tcp丟包率不為0%的待選節(jié)點的優(yōu)先級設(shè)置為h,g為優(yōu)先級數(shù)值中最小的數(shù)值,h為優(yōu)先級數(shù)值中最大的數(shù)值,優(yōu)先級范圍為g—h,g和h均為整數(shù);
4、假中心節(jié)點將暫設(shè)優(yōu)先級為g的待選節(jié)點按時延從小到大進行重新排序,按排序,時延最小的待選節(jié)點的最終優(yōu)先級為g;
5、將最終優(yōu)先級為g的待選節(jié)點配置為主中心節(jié)點,將最終優(yōu)先級為g+1的待選節(jié)點配置為備中心節(jié)點。
6、上述節(jié)點選舉方法,所述假中心節(jié)點配置有一個選舉計時器;
7、當(dāng)一輪計時器周期到期時,所有待選節(jié)點的tcp丟包率均不為0%,則假中心節(jié)點清空本輪計時器周期內(nèi)接收到的所有待選節(jié)點發(fā)送的待選優(yōu)先級列表,并重置選舉計時器,開啟下一輪計時器周期。
8、上述節(jié)點選舉方法,當(dāng)一輪計時器周期到期前,假中心節(jié)點持續(xù)接收從各個待選節(jié)點發(fā)送的待選優(yōu)先級列表,并記錄每個待選節(jié)點的tcp丟包率和時延;
9、當(dāng)一輪計時器周期到期后,且不存在所有待選節(jié)點的tcp丟包率均不為0%的情況,則假中心節(jié)點計算每個待選節(jié)點的最終優(yōu)先級。
10、上述節(jié)點選舉方法,當(dāng)假中心節(jié)點計算每個待選節(jié)點的最終優(yōu)先級時,若已存在主中心節(jié)點和備中心節(jié)點,則,假中心節(jié)點將暫設(shè)優(yōu)先級為g的待選節(jié)點按時延從小到大進行重新排序,按排序,時延最小的待選節(jié)點的最終優(yōu)先級為g+2。
11、本發(fā)明第二方面公開了一種節(jié)點選舉系統(tǒng),包括假中心節(jié)點,所述假中心節(jié)點被配置為:接收從各個待選節(jié)點發(fā)送的待選優(yōu)先級列表,并記錄每個待選節(jié)點的tcp丟包率和時延;
12、假中心節(jié)點將tcp丟包率為0%的待選節(jié)點的優(yōu)先級暫設(shè)為g,將tcp丟包率不為0%的待選節(jié)點的優(yōu)先級設(shè)置為h,g為優(yōu)先級數(shù)值中最小的數(shù)值,h為優(yōu)先級數(shù)值中最大的數(shù)值,優(yōu)先級范圍為g—h,g和h均為整數(shù);
13、假中心節(jié)點將暫設(shè)優(yōu)先級為g的待選節(jié)點按時延從小到大進行重新排序,按排序,時延最小的待選節(jié)點的最終優(yōu)先級為g;
14、將最終優(yōu)先級為g的待選節(jié)點配置為主中心節(jié)點,將最終優(yōu)先級為g+1的待選節(jié)點配置為備中心節(jié)點。
15、本發(fā)明第三方面公開了一種節(jié)點遞補方法,基于上述第一方面所述節(jié)點選舉方法完成主中心節(jié)點和備中心節(jié)點的選舉;
16、所述主中心節(jié)點被配置為周期性地向假中心節(jié)點發(fā)送自己的待選優(yōu)先級列表;
17、當(dāng)所述假中心節(jié)點在規(guī)定時間內(nèi)未收到主中心節(jié)點的待選優(yōu)先級列表時,則標(biāo)記主中心節(jié)點為失聯(lián),假中心節(jié)點將待處理任務(wù)發(fā)送備中心節(jié)點處理;
18、所述假中心節(jié)點開啟計時器,計時周期為n個等待周期,當(dāng)n個等待周期內(nèi)均未收到主中心節(jié)點的待選優(yōu)先級列表,則將備中心節(jié)點配置為主中心節(jié)點,并重置n;
19、當(dāng)n個等待周期內(nèi)均收到主中心節(jié)點的待選優(yōu)先級列表,則將n設(shè)置為n-1。
20、上述節(jié)點遞補方法,所述備中心節(jié)點被配置為周期性地向假中心節(jié)點發(fā)送自己的待選優(yōu)先級列表;
21、當(dāng)所述主中心節(jié)點和備中心節(jié)點均被標(biāo)記為失聯(lián)時,重新執(zhí)行所述節(jié)點選舉方法完成主中心節(jié)點和備中心節(jié)點的選舉。
22、上述節(jié)點遞補方法,當(dāng)將備中心節(jié)點配置為主中心節(jié)點時,將優(yōu)先級為g+2的待選節(jié)點配置為備中心節(jié)點。
23、上述節(jié)點遞補方法,當(dāng)將備中心節(jié)點配置為主中心節(jié)點時,將所有待選節(jié)點的優(yōu)先級減1。
24、本發(fā)明第四方面公開了一種節(jié)點遞補系統(tǒng),包括假中心節(jié)點,所述假中心節(jié)點被配置為:基于上述第一方面所述節(jié)點選舉方法完成主中心節(jié)點和備中心節(jié)點的選舉;
25、所述主中心節(jié)點被配置為周期性地向假中心節(jié)點發(fā)送自己的待選優(yōu)先級列表;
26、當(dāng)所述假中心節(jié)點在規(guī)定時間內(nèi)未收到主中心節(jié)點的待選優(yōu)先級列表時,則標(biāo)記主中心節(jié)點為失聯(lián),假中心節(jié)點將待處理任務(wù)發(fā)送備中心節(jié)點處理;
27、所述假中心節(jié)點開啟計時器,計時周期為n個等待周期,當(dāng)n個等待周期內(nèi)均未收到主中心節(jié)點的待選優(yōu)先級列表,則將備中心節(jié)點配置為主中心節(jié)點,并重置n;
28、當(dāng)n個等待周期內(nèi)均收到主中心節(jié)點的待選優(yōu)先級列表,則將n設(shè)置為n-1。
29、本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點:
30、1、減少存儲負(fù)擔(dān):該方案不需要每個節(jié)點存儲關(guān)于所有其他節(jié)點的全局信息,而是僅記錄tcp丟包率和時延,這減少了存儲需求。
31、2、降低重新選舉頻率:通過將tcp丟包率為0%的節(jié)點賦予最高優(yōu)先級,減少了因新節(jié)點加入或節(jié)點故障恢復(fù)而觸發(fā)的重新選舉。
32、3、減少通信量:該方案中,節(jié)點不需要進行廣泛的通信來獲取所有其他節(jié)點的信息,只需發(fā)送和接收關(guān)于丟包率和時延的數(shù)據(jù),從而減少了通信量。
33、4、加快選舉速度:優(yōu)先級和時延的排序機制允許快速確定主節(jié)點和備節(jié)點,避免了復(fù)雜的投票和比較過程,加快了選舉速度。
34、5、避免廣播風(fēng)暴:由于不需要廣播大量的選票信息,該方案避免了因廣播導(dǎo)致的網(wǎng)絡(luò)風(fēng)暴問題。
35、6、提高選舉穩(wěn)定性:通過優(yōu)先考慮網(wǎng)絡(luò)質(zhì)量(tcp丟包率和時延)來選舉節(jié)點,該方案提高了選舉結(jié)果的穩(wěn)定性。
36、7、簡化算法復(fù)雜性:該方案的優(yōu)先級設(shè)置和排序機制相對簡單,降低了算法的復(fù)雜性,使得理解和實現(xiàn)更加容易。
37、8、增強對故障的響應(yīng)能力:通過設(shè)置備中心節(jié)點,該方案增強了對主節(jié)點故障的響應(yīng)能力,確保了系統(tǒng)的高可用性。
38、9、保證數(shù)據(jù)一致性:通過選擇網(wǎng)絡(luò)性能最好的節(jié)點作為主節(jié)點,該方案有助于減少因網(wǎng)絡(luò)問題導(dǎo)致的同步延遲,從而有助于保持?jǐn)?shù)據(jù)一致性。
39、10、避免對特定條件的依賴:該方案不依賴于奇數(shù)節(jié)點等特定條件,提供了更大的靈活性和可擴展性。
40、下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細(xì)描述。