面试题答案
一键面试- 自动发现机制:
- Sentinel通过与主服务器建立连接,发送INFO命令。主服务器在INFO命令的回复中会包含从服务器的信息,如从服务器的IP、端口等。例如,主服务器的INFO回复中会有类似
slave0:ip=192.168.1.10,port=6380,state=online,offset=1000,lag=0
这样的字段,Sentinel可以从中解析出从服务器的详细信息。
- Sentinel通过与主服务器建立连接,发送INFO命令。主服务器在INFO命令的回复中会包含从服务器的信息,如从服务器的IP、端口等。例如,主服务器的INFO回复中会有类似
- 定期心跳检测:
- Sentinel会定期向主服务器和已知的从服务器发送PING命令,进行心跳检测。
- 如果某个从服务器在一定时间内没有响应PING命令,Sentinel会将其标记为主观下线(SDOWN)。这有助于Sentinel及时发现从服务器可能出现的故障,从而为后续重新获取从服务器信息做准备。
- 故障检测与信息更新:
- 当Sentinel判断某个从服务器主观下线后,会与其他Sentinel节点进行通信,交换对该从服务器的状态判断。如果达到一定数量(quorum)的Sentinel都认为该从服务器下线,那么会将其标记为客观下线(ODOWN)。
- 在从服务器发生故障(如重启、网络问题恢复等)后重新上线时,Sentinel会重新通过与主服务器交互(发送INFO命令)来获取最新的从服务器列表,更新从服务器信息,确保对整个Redis集群状态的准确掌握。