redis学习之redis Sentinel的三个定时任务与领导者选举
redis Sentinel做到故障转移是基于三个定时任务的执行
(1)每隔10s每个sentinel会对master节点和slave节点执行info命令
作用就是发现slave节点,并且确认主从关系,因为redis-Sentinel节点启动的时候是知道
master节点的,只是没有配置相应的slave节点的信息
(2)每隔两秒,sentinel都会通过master节点内部的channel来交换信息(基于发布订阅)
作用是通过master节点的频道来交互每个Sentinel对master节点的判断信息
(3) 每隔一秒每个sentinel对其他的redis节点(master,slave,sentinel)执行ping操作,对于master来说
若超过30s内没有回复,就对该master进行主观下线并询问其他的Sentinel节点是否可以客观下线
客观下线和主观下线
主观下线:每个Sentinel节点对Redis节点失败的“偏见”
客观下线:所有Sentinel节点对Redis节点失败达成共识
领导者选举,之后进行故障转移,这个过程由成为leader的Sentinel的来完成。
之后便进行故障转移:
parallel-syncs参数的含义:
主从复制过程中,从节点从master同步数据的并发度,虽然此过程中RDB文件只有一份,但是RDB文件生成的过程中
若master节点有新的命令被执行,那么master会向salve发送buffer中缓存的数据,会占用一定的网络,因此一般设置为1