面试题答案
一键面试选举时间相关配置
- sentinel monitor
- 含义:配置对主节点的监控。
<master - name>
是主节点的名称,<ip>
和<redis - port>
是主节点的地址和端口,<quorum>
是判断主节点失效需要的最少Sentinel数量。 - 影响:当达到
<quorum>
数量的Sentinel节点认为主节点失效时,才会开启故障转移流程。如果设置过小,可能会因为部分Sentinel节点误判就开启故障转移;设置过大,可能导致故障转移延迟。
- 含义:配置对主节点的监控。
- sentinel down - after - milliseconds <master - name>
- 含义:定义Sentinel节点判定主节点主观下线(SDOWN)的时间,即如果在
<milliseconds>
时间内没有收到主节点的有效回复,Sentinel节点就认为主节点主观下线。 - 影响:时间设置过短,可能会因为网络波动等短暂原因误判主节点下线;设置过长,故障发现会延迟,影响故障转移及时性。
- 含义:定义Sentinel节点判定主节点主观下线(SDOWN)的时间,即如果在
最小投票数相关配置
- sentinel failover - timeout <master - name>
- 含义:设置故障转移的超时时间。在这个时间内,如果故障转移没有完成,Sentinel会尝试重新进行故障转移。同时,这个配置也间接影响了选举时间。
- 影响:设置过短,可能导致频繁重试故障转移,增加系统负担;设置过长,故障转移完成时间可能过长,影响服务可用性。
- sentinel parallel - syncs <master - name> <num - slaves>
- 含义:定义在故障转移后,同时重新配置多少个从节点去同步新的主节点。
- 影响:设置较大值,可以加快从节点同步新主节点数据的速度,减少整体故障转移完成时间,但可能会对网络和新主节点造成较大压力;设置较小值,同步过程会更平稳,但故障转移完成时间可能会变长。
优化建议
- 网络稳定环境:在网络相对稳定的环境中,可以适当减小
sentinel down - after - milliseconds
的值,加快故障发现速度,同时增大sentinel monitor
中的<quorum>
值,保证故障判定的准确性。 - 复杂网络环境:对于网络复杂,容易出现短暂波动的环境,适当增大
sentinel down - after - milliseconds
的值,减少误判,同时合理设置sentinel failover - timeout
,保证故障转移的有效性。 - 系统资源考虑:根据服务器的网络带宽、CPU等资源情况,合理设置
sentinel parallel - syncs
的值,平衡故障转移速度和系统资源消耗。