sntinel选举

redis sentinel运行

馋奶兔 提交于 2019-12-05 05:25:05
sentinel 模式以 100ms (理想情况下)的速度调用 sentinelTimer 1、 执行 sentinelCheckTiltCondition 判断是否进入 tilt 模式 检查当前之间与 sentinel.previous_time 的时间差值,如果为负值或者大于阀值进入 tilt 模式,进入 tilt 模式会发送消息到 +tilt 频道 2、 执行 sentinelHandleDictOfRedisInstances 函数 对 master 执行 sentinelHandleRedisInstance i. 尝试重连如果断开连接的话 ii. 发送周期性命令 10000ms 发送一个 info 命令 a) 异步回复处理策略 i. 判断 runnid ,更新该 master 的 runnid 如果现在 ri->runnid = NULL, 如果非 NULL , 会比较两次 runnid 是否一致,如果不一致认为 master 重启过了,将发送消息到 +reboot 频道通知该 master 重启了 ii. down_after_period 小于 1000ms ,则在 down_after_period 时间内发送一个 ping 命令,否则以 1000ms 为周期发送 a) 异步回复处理 i. 根据回复修改 last_avail_time 、 last_ping