请阐述 Redis 哨兵机制的核心职责与工作原理。
考察说明
考查对 Redis 高可用方案中哨兵机制的理解程度。
回答思路
- 【回答框架 1】哨兵是 Redis 高可用解决方案,核心职责包括监控、自动故障转移、配置提供和通知。它通过不断检查主从节点状态来实现监控。
- 【回答框架 2】故障转移流程:当主节点被判定为主观下线(单个哨兵认为不可达),再经多个哨兵协商(quorum)确认后升级为客观下线,随后进行领导者选举,选出一个哨兵执行故障转移。
- 【回答框架 3】故障转移操作:从从节点中选出新主节点,让其他从节点复制新主,并更新客户端配置,通知其连接新主地址。
- 【回答框架 4】哨兵之间通过发布订阅和 gossip 协议同步信息,保证一致性。
- 【关键点 1】哨兵的核心功能:监控、自动故障转移、配置提供和通知。
- 【关键点 2】主观下线与客观下线的区分,以及 quorum 在客观下线判定中的关键作用。
- 【关键点 3】领导者选举使用 Raft 算法类似机制。
- 【关键点 4】故障转移后需更新客户端配置,确保连接新主。
- 【易错点 1】不应将哨兵机制等同于数据持久化或高可用终极方案,它主要解决主节点故障时的自动切换问题。
- 【易错点 2】故障转移期间服务可能短暂不可用,且存在数据丢失风险(如异步复制未同步数据)。