简单介绍一下 Raft (分布式一致性算法) 选举过程

在分布式系统中,一致性指的是集群中的多个节点在状态上达成一致。 但是在现实场景中,由于程序异常、网络中断、硬件故障等原因,节点间的一致性很难保证,这样就需要Paxos、Raft等协议来保证节点间的一致性,本次就Raft的选举机制进行简单描述。

Raft是一种更为简单方便易于理解的分布式算法,以正确性、高效性、简洁性作为主要设计目标,Raft算法是现在分布式系统开发主流算法,如etcd(K8S)、consul等。

选举领导者过程

Raft算法有三种角色:


选举规则:


初始状态:所有节点都是跟随者

Raft算法特性是随机超时时间,每个节点等待领导者节点心跳信息的超时时间间隔是随机的;集群中没有领导者时,等待超时时间最小的节点会因为没有等到领导者心跳信息,发生超时。

超时自荐

此时该节点就会增加自己的任期编号,并推举自己为候选人,先给自己投一张选票,然后向其他节点发送请求投票消息,请它们选举自己为领导者。

选举投票

其他节点接受到候选人的消息时,并且在编号为1的任期内,没有投过票,那么就把选票投给该候选人,然后增加自己的任期编号。

领导者产生

候选人在选举超时时间内赢得了大多数的选票,那么它就会成为本届任期内新的领导者。

领导者维持

领导者将周期性地发送心跳消息,通知其他服务器我是领导者,阻止跟随者发起新的选举。


在选举过程还会有其它情况,如节点A、节点B同时发起选举(自行切换过程),或所有节点没有收到大部分投票(重新发起选举),以及Leader crash场景下的选举过程等,大家可以通过了解正常情况下的选举过程,逐步去学习和深入了解Raft算法。

展开阅读全文

页面更新:2024-03-31

标签:分布式   算法   过程   选票   任期   节点   候选人   领导者   消息   简单   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top