为了保证redis-sentinel对redis 节点做失败判定,以及做故障转移,redis有3个定时任务作为基础实现上述过程。
redis-sentinel.conf配置了sentinel monitor mastername ip posrt, 没有配置slave节点,sentinel节点会对master节点执行info。从info replication中解析出slave节点
对于每一个sentinel节点,会执行info,会得到master的slave节点信息。对slave节点做info,判断slave是否有slave节点,以及节点间的变化
master节点上有一个发布订阅的频道channel,用于让sentinel节点进行信息交换。每个sentinel节点发布一个信息,其他sentinel可以收到这个信息,信息包含当sentinel节点信息,以及它对master/slave节点做的判断
这样当新加一个sentinel节点时候,其他sentinel可以感知新sentinel节点存在。
达成信息交互的平台,为故障判断,领导者选举过程,提供信息交互基础
上两步是这一步的基础
第一步:sentinel对master执行info,可以发现slave,可以全面掌握redis节点状况
第二步:sentinel节点间信息交互,sentinel节点可以互相感知对方,每个sentinel节点可以知道其他sentinel节点
心跳检测,故障检测中最重要一步