System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開涉及分布式計算,尤其涉及一種分布式系統中主從節點選舉方法、裝置、設備及存儲介質。
技術介紹
1、在分布式系統的設計中,cap理論指出一致性(consistency)、可用性(availability)和分區容錯性(partition?tolerance)三者之間只能權衡滿足其中的兩者。
2、目前主流的分布式系統解決方案,如基于paxos、raft或zab一致性算法的軟件產品,在單中心架構下表現良好。然而,在雙中心架構,特別是在異地雙中心這種網絡環境不穩定的情況下,這些一致性算法往往會變得非常敏感,導致頻繁的狀態切換,進而影響整體服務的穩定性。
3、在金融私有云中,通常采用單中心、同城雙中心(雙活/熱備、冷備)、或異地雙中心(雙活/熱備、冷備)等架構形式。雙中心雙活架構可以最大限度地利用服務器資源,并確保系統能夠在單中心故障時仍能提供服務,從而降低因外部因素導致的金融服務中斷風險。
4、雙中心架構通常依賴高成本、帶寬有限的專線連接,尤其是在異地雙中心中,這種限制更為明顯。行業內的多中心或分布式服務通常通過投票的方式來進行選舉,這意味著需要3個或更多奇數節點才能達成一致。然而,雙中心架構本身無法滿足這一條件,因為在網絡分區時(如專線斷開),兩個中心可能都會認為對方已“宕機”,即所謂的“腦裂”,盡管雙方實際上仍在運行。
5、由于上述原因,金融私有云在雙中心環境中通常不支持基于這些一致性算法的軟件產品,即這些產品只在單中心環境中使用,而不提供跨中心的服務支持。
6、此外,
技術實現思路
1、本公開提供了一種分布式系統中主從節點選舉方法、裝置、設備及存儲介質,以至少解決現有技術中存在的以上技術問題。
2、根據本公開的第一方面,提供了一種分布式系統中主從節點選舉方法,所述方法包括:
3、確定與數據庫連接的多個中心,每個所述中心包括多個節點;
4、根據每個所述節點進入系統的運行時間的先后順序,數據庫給每個所述節點分配一個自增標識,其中,所述自增標識越小,表示所述節點運行的時間越早;
5、每個所述節點向所述數據庫發送周期性心跳數據;
6、根據每個所述節點的周期性心跳數據以及自增標識,確定每個所述中心的中心主節點和中心從節點,以及從多個所述中心主節點中確定全局主節點;
7、當所述全局主節點發生故障時,根據每個所述中心主節點的周期性心跳數據以及自增標識,選舉出新的全局主節點;
8、當每個中心的中心主節點發生故障時,根據每個所述中心從節點的周期性心跳數據以及自增標識,選舉出新的中心主節點。
9、在一可實施方式中,所述根據每個所述節點的周期性心跳數據以及自增標識,確定每個所述中心的中心主節點和中心從節點,以及從多個所述中心主節點中確定全局主節點,包括:
10、選擇每個中心中周期性心跳數據的最后心跳時間在預設范圍內,且自增標識最小的節點為中心主節點,其余節點為中心從節點;
11、選擇周期性心跳數據的最后心跳時間在預設范圍內,且自增標識最小的中心主節點為全局主節點。
12、在一可實施方式中,所述當所述全局主節點發生故障時,根據每個所述中心主節點的周期性心跳數據以及自增標識,選舉出新的全局主節點,包括:
13、當所述全局主節點發生故障時,選擇周期性心跳數據的最后心跳時間在預設范圍內,且自增標識最小的中心主節點為新的全局主節點。
14、在一可實施方式中,所述當每個中心的中心主節點發生故障時,根據每個所述中心從節點的周期性心跳數據以及自增標識,選舉出新的中心主節點,包括:
15、當每個中心的中心主節點發生故障時,選擇每個中心中周期性心跳數據的最后心跳時間在預設范圍內,且自增標識最小的中心從節點為新的中心主節點。
16、在一可實施方式中,所述方法還包括:
17、當確定中心主節點和全局主節點后,每個中心的中心從節點向中心主節點發送數據,中心主節點向全局主節點發送數據,全局主節點向數據庫發送數據。
18、在一可實施方式中,所述方法還包括:
19、當中心主節點與全局主節點之間斷開連接時,中心主節點與數據庫連接,向數據庫發送數據。
20、在一可實施方式中,所述預設范圍為30-60s。
21、根據本公開的第二方面,提供了一種分布式系統中主從節點選舉裝置,所述裝置包括:
22、第一確定單元,配置為確定與數據庫連接的多個中心,每個所述中心包括多個節點;
23、分配單元,配置為根據每個所述節點進入系統的運行時間的先后順序,數據庫給每個所述節點分配一個自增標識,其中,所述自增標識越小,表示所述節點運行的時間越早;
24、發送單元,配置為每個所述節點向所述數據庫發送周期性心跳數據;
25、第二確定單元,配置為根據每個所述節點的周期性心跳數據以及自增標識,確定每個所述中心的中心主節點和中心從節點,以及從多個所述中心主節點中確定全局主節點;
26、第一選舉單元,配置為當所述全局主節點發生故障時,根據每個所述中心主節點的周期性心跳數據以及自增標識,選舉出新的全局主節點;
27、第二選舉單元,配置為當每個中心的中心主節點發生故障時,根據每個所述中心從節點的周期性心跳數據以及自增標識,選舉出新的中心主節點。
28、根據本公開的第三方面,提供了一種電子設備,包括:
29、至少一個處理器;以及
30、與所述至少一個處理器通信連接的存儲器;其中,
31、所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行本公開所述的方法。
32、根據本公開的第四方面,提供了一種存儲有計算機指令的非瞬時計算機可讀存儲介質,所述計算機指令用于使所述計算機執行本公開所述的方法。
33、本公開的分布式系統中主從節點選舉方法、裝置、設備及存儲介質,通過增加一個自增標識,將自增標識與周期性心跳數據一起作為全局統一的選舉標準,如此,在雙中心架構,甚至是多中心架構中,無論是正常運行、雙中心“腦裂”還是單邊中心整體“宕機下線”,單個中心都能夠繼續正常工作,并且數據的準確性能夠維持在可控范圍內。這種設計確保了系統的穩定性,即使在極端情況下也能保持業務的連續性。
34、此外,基于數據庫的選舉機制不再依賴傳統的投票過程,這意味著無論有多少節點在線,系統都能夠正常運行,甚至在只有一個節點的情況下也能保證穩定性和可用性。對于并發量較小的業務場本文檔來自技高網...
【技術保護點】
1.一種分布式系統中主從節點選舉方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,
3.根據權利要求1所述的方法,其特征在于,
4.根據權利要求1所述的方法,其特征在于,
5.根據權利要求1所述的方法,其特征在于,所述方法還包括:
6.根據權利要求1所述的方法,其特征在于,所述方法還包括:
7.根據權利要求2-4中任一項所述的方法,其特征在于,
8.一種分布式系統中主從節點選舉裝置,其特征在于,所述裝置包括:
9.一種電子設備,其特征在于,包括:
10.一種存儲有計算機指令的非瞬時計算機可讀存儲介質,其特征在于,所述計算機指令用于使計算機執行根據權利要求1-7中任一項所述的方法。
【技術特征摘要】
1.一種分布式系統中主從節點選舉方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,
3.根據權利要求1所述的方法,其特征在于,
4.根據權利要求1所述的方法,其特征在于,
5.根據權利要求1所述的方法,其特征在于,所述方法還包括:
6.根據權利要求1所述的方法,其特征在于,...
【專利技術屬性】
技術研發人員:鄭建,劉謙,蔣瑩凱,邢超,
申請(專利權)人:寧波菊風系統軟件有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。