算法【Raft 投票】
一、简介
Raft算法属于典型的多数派选主算法,谁获得的票数最多,谁就可以成为主节点。
二、说明
Raft算法选主中集群各个节点的角色有3种:
Leader:主节点,同一时刻只有一个Leader节点,负责整个集群的节点间的协调和管理。
Candidate: 候选节点,只有角色为候选者的节点才可以被选为新的Leader,每个节点 都有可以成为候选者。
Follower:Leader的跟随者,这个角色的时候不可以发起选主。
三、选举流程
- 初始化时,各个节点均为Follower状态;
- 开始选主时,所有节点的Follower状态转为Candidate状态,并向其他节点发送选主请求;
- 其他节点根据收到的选主请求的先后顺序,进行回复是否同意其成为主节点;每个节点只能投一张票;
- 发起选主的节点如果得到一半以上的投票,则会成为主节点,状态变为Leader,其他几点则会由Candidate转为Follower状态,此时Leader和Follower将保持心跳检测;
- 如果Leader节点的任期到了,Leader则会降为Follower,进行新一轮选主。
四、触发条件
1、Leader出现故障;
2、Leader任期满了(节点有一定的任期时间)
五、优缺点
【优点】:选举速度快、算法复杂度低、易于实现的优点
【缺点】:1、集群中各个节点均需要相互通信,且需要半数以上的节点同意才能成为主,因此通信量比较大。
2、Raft的稳定性要比Bully算法好,是因为它在新节点加入或者故障节点恢复的时候,并不一定像Bully那样可能频繁切主,除非投票数过半才会真的切主。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南