fastdfs的tracker启动之后一直选举_jraft选举策略
生活随笔
收集整理的這篇文章主要介紹了
fastdfs的tracker启动之后一直选举_jraft选举策略
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、角色劃分
二、Leader選舉流程
1、PreVote
一般來說,raft的選舉僅且只有一輪投票選出集群leader,但會存在缺陷,就是網絡分區后,少數派節點雖然都不會得到足夠的票數成為分區Leader,但任選編號term卻會不斷增加,在網絡分區恢復,少數派節點會因為term較大,而迫使多數派Leader下線,我們叫他做搗蛋鬼。為了避免搗蛋鬼謀權篡位,我們引入Pre-Vote,只有得到絕大多數選票,才有被提拔為候選人的資格
在PreVote算法中,Candidate首先要確認自己能贏得集群中大多數節點的投票,這樣才會把自己的term增加,然后發起真正的投票,其他投票節點同意發起選舉的條件是(同時滿足下面兩個條件):
- 沒有收到有效領導的心跳,至少有一次選舉超時
- Candidate的日志足夠新(Term更大,或者Term相同raft index更大)
PreVote算法解決了網絡分區節點在重新加入時,會中斷集群的問題。在PreVote算法中,網絡分區節點由于無法獲得大部分節點的許可,因此無法增加其Term。然后當它重新加入集群時,它仍然無法遞增其Term,因為其他服務器將一直收到來自Leader節點的定期心跳信息。一旦該服務器從領導者接收到心跳,它將返回到Follower狀態,Term和Leader一致。
2、Vote
超時驅動:心跳間隔/Leader與followers 間通信超時觸發選舉的時間
隨機的超時時間:降低選舉碰撞導致選票被瓜分的概率
選舉流程:
- Follower –> Candidate
- 贏得選舉:Candidate –> Leader
- 另一個節點贏得選舉:Candidate –> Follower
- 一段時間內沒有任何節點器贏得選舉:Candidate –> Candidate
三、實現時序
總結
以上是生活随笔為你收集整理的fastdfs的tracker启动之后一直选举_jraft选举策略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 穿越火线枪战王者手机助手(穿越小说在线阅
- 下一篇: 苹果笔怎么用 苹果笔如何使用