第 9 章 · 哨兵 Sentinel 高可用

三个交互演示:① 故障转移全流程动画 · ② SDOWN vs ODOWN 判定 · ③ Sentinel 配置解读器

1 主 2 从 + 3 哨兵:从主节点宕机到客户端切换

点「主节点宕机」按钮,观察哨兵如何 PING 超时 → 互相确认 → 选 Leader → 选新主 → 重排从节点 → 通知客户端。每一步都有文字解说和事件流。

0/8
点上面按钮开始演示
提示:真实生产环境中故障转移耗时一般 30~60 秒,本动画把每一步压缩到 2 秒方便观察。「Leader」是选举出来唯一负责执行 failover 的哨兵;「new-master」就是新主,其他从会被 SLAVEOF 到它。

SDOWN → ODOWN:达到 quorum 才升级

下面 5 个哨兵分别监控同一个主节点。点「我觉得主死了」切换它的 SDOWN 视角。当「认为主下线的哨兵数 ≥ quorum」时,主节点状态升级为 ODOWN,故障转移流程被触发。

哨兵总数 N
5
judge-down 票数
0
quorum 阈值
3
majority(选 Leader 用)
3
✅ 主节点在线(无哨兵报告下线)
易混点: quorum(判 ODOWN 的票数)和 majority = ⌊N/2⌋+1(选 Leader 的票数)是两件事。 quorum 可小可大,但 ODOWN 触发后真正发起 failover 还需要满足 majority。

sentinel.conf 逐行解读

左边编辑配置(默认放了一份生产可用模板),右边即时解析每一行的含义。能识别的指令会高亮,配错值会红色警告。

支持的指令: port · dir · sentinel monitor · sentinel down-after-milliseconds · sentinel parallel-syncs · sentinel failover-timeout · sentinel auth-pass · sentinel notification-script · sentinel client-reconfig-script · sentinel deny-scripts-reconfig · sentinel resolve-hostnames · sentinel announce-ip · sentinel announce-port