MongoDB-复制集选举规则
选举规则
- 一旦发现主节点没有响应 / 发送心跳请求, 那么副节点就会认为主节点挂了
- 一旦发现主节点挂了, 任意一个副节点都可以发起选举
- (发起选举的节点我们称之为
候选节点
, 每一个节点内部都有一个选举计数器
) - 发起选举的节点会给自己先投一票, 然后将自己的票数依次发送给其它节点
其它节点收到投票请求后, 会先利用发送过来的票数同步自己计数器的票数:
-
然后再对比自己的数据和候选节点的数据哪个更完整
-
如果自己的更完整, 那么会投出反对票
-
如果候选节点的更完整, 那么会投出赞同票
-
最后如果超过半数的节点投出赞同票, 那么候选节点就会变成主节点
-
最后如果没有超过半数节点投出赞同票, 那么其它节点会重新发起选举, 重复上述过程
!> 一个复制集中最多只能有 7
个投票节点
!> 如果某个节点没有返回投票结果, 那么默认就是不赞同, 挂掉的节点不会返回结果
!> 因为选举需要超过半数节点同意, 才会将副节点变成主节点, 所以在企业开发中一个复制集至少需要 3 个节点,否则一旦主节点挂了, 永远无法完成投票
!> 因为选举需要超过半数节点同意, 才会将副节点变成主节点, 所以在企业开发中节点的个数最好是 奇数
触发选举的其它条件
- 初始化复制集时, 会自动触发选举
- 有新节点加入时, 会自动触发选举
- 当前主节点挂掉时, 会自动触发选举
分类:
MongoDB4.X+新特性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具