日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

fastdfs的tracker启动之后一直选举_jraft选举策略

發布時間:2023/12/2 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fastdfs的tracker启动之后一直选举_jraft选举策略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、角色劃分

  • Follower:完全被動,不能發送任何請求,只接受并響應來自leader 和 candidate 的 message,每個節點啟動后的初始狀態一定是follower;
  • Leader:處理所有來自客戶端的請求,以及復制 log到所有follower;
  • Candidate:用來競選一個新leader(candidate 由 follower 觸發超時而來)
  • 二、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选举策略的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。