算法【bully 霸道算法】
一、简介
bully算法,也叫霸道算法。遵循谁拳头大谁当老大原则,即集群中节点ID值最大的那个则会被选为主节点。
二、说明
bully算法在选主过程中,会涉及到以下三种消息:
bully算法底层选主流程图:
【触发选主时机】
2.1、错误节点恢复。
2.2、检测到master节点发生故障,如上图:
流程如下:
- 集群中所有节点都会判断自己的Id是否最大的,如果是最大的,则会像其他节点直接发送Victory,进行宣誓主权。
- 如果自己并不是当前存活节点最大的,则需要向比自己大的节点发送Election消息,并等待其他节点的回复。
- 在规定的时间范围内,若没有收到任何节点的Alive消息,则会认为自己成为主节点,并像其他节点发送Victory,宣誓自己是老大了;若收到了比自己大的节点回复的Alive消息,则自己会等待Victory的通。
- 若收到了比自己小的节点发来的Election消息,则会回复个Alive消息过去,告诉它我比大。
三、优缺点
【优点】:霸道简单,选举速度快,算法复杂度低、简单容易实现。
【缺点】:1、所有节点需要得知每个节点的相关信息(比如图例中的id值),需要额外的信息存储。
2、若一个ID值比现在集群中master大的节点新加入或者故障恢复,则会触发新一轮的选主,如果这台节点不稳定或者频繁退出,则会出现当前分布式系统频繁的进行切换选主。
【推荐】国内首个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代理技术深度解析与实战指南