Redis的哨兵模式以及工作原理
Redis的哨兵模式以及工作原理
哨兵的作用
通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。
然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。
哨兵之间也会进行通信,相当于属于自己群消息,因为每次哨兵和主节点master和从节点slave进行通信的可能不是同一个,所以每一个哨兵通信完成之后都会通知其他的哨兵,是否正常。
主观下线和客观下线:
假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。
当客观下线时,就会进行选举操作
选举出来的哨兵就会进行问题的处理
进行选择新的master节点的条件:
1、经常在线的
2、响应快的
3、离上次和主节点交互最近的节点
4、优先原则:
1、优先级
2、offset:偏移量
3、runid:就是id号,越小的越优先
选举完成之后就会将选举出来的slave节点成为新的master节点,然后通知其他的slave节点,新的master为谁,然后进行连接。
总结