簡體   English   中英

網絡斷開后筏子追隨者如何重新加入?

[英]how raft follower rejoin after network disconnected?

木筏上有問題。

在論文“尋求可理解的共識算法(擴展版本)”中,它說:

為了開始選舉,跟隨者增加其當前術語並轉換到候選狀態。 (見第5.2節)

它還說:

在AppendEntries RPC和RequestVot RPC中,reciever應為“如果args.term <currentTerm”,則返回false

那么,讓我們想想這個場景,筏系統中有5台機器,現在機器0是領導者,機器1到4是跟隨者,現在是第1項。突然,機器1斷開網絡,然后機器1超時,它開始領導選舉,它發送RequestVot RPC,確定它將失敗(網絡斷開)。 然后它將開始新的領導人選舉......等等。 機器1的術語是多次增加。 也許增加到10.當機器1'Term增加到10時,它連接網絡。 並且領導者(機器0)將心跳發送到機器1,機器1將拒絕心跳(機器0'小於機器1),現在,機器1將無法重新加入系統。

這里要記住的重要一點是,當節點收到更大的術語時,它總是更新其本地術語。 因此,由於機器1將拒絕領導者的請求,領導者將最終了解更高期限(10)和降級,然后將選擇新節點> 10。

顯然這是低效的,但這就是為什么大多數現實世界的實現使用所謂的“預投票”協議,檢查以確保節點在轉換到候選角色並增加該術語之前可以贏得選舉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM