MST

星途 面试题库

面试题:Redis Sentinel如何判断主节点客观下线

在Redis Sentinel机制中,详细描述Sentinel是怎样检查主节点进入客观下线状态的过程,包括涉及到的参数及相关配置的作用。
28.3万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

1. 主观下线(Subjectively Down,SDOWN)

  • Sentinel 节点会定期向主节点和从节点发送 PING 命令,以检测节点是否可达。
  • 如果在配置的 down-after-milliseconds 参数指定的时间内,节点没有回复 PONG,Sentinel 节点会将该节点标记为主观下线。例如,配置 sentinel down-after-milliseconds mymaster 30000 表示如果 Sentinel 与主节点 mymaster 超过 30000 毫秒(30 秒)没有通信,就将其标记为主观下线。

2. 客观下线(Objectively Down,ODOWN)

  • 当一个 Sentinel 节点将主节点标记为主观下线后,它会向其他 Sentinel 节点发送 SENTINEL is-master-down-by-addr 命令,询问其他 Sentinel 节点对该主节点状态的判断。
  • 每个接收到该命令的 Sentinel 节点会根据自身对主节点的判断进行回复。
  • 当判断主节点主观下线的 Sentinel 节点数达到配置的 quorum 参数指定的数量时,这个主节点就会被标记为客观下线。例如,配置 sentinel quorum mymaster 2 表示至少需要 2 个 Sentinel 节点认为主节点主观下线,才能将其标记为客观下线。

3. 相关配置作用

  • down-after-milliseconds:这个参数设置了 Sentinel 判断一个节点主观下线的时间阈值。如果设置过小,可能会因为网络抖动等短暂问题导致误判;如果设置过大,故障检测的延迟会增加。
  • quorum:定义了判断主节点客观下线所需的 Sentinel 节点数。quorum 的值应该小于 Sentinel 集群中的节点总数,且一般建议大于集群节点数的一半,以确保在多数 Sentinel 节点达成共识时才判定主节点客观下线,防止脑裂等问题。