Redis 领头哨兵的选举之路(redis领头哨兵选举)
Redis是一款开源的,高性能的,键值对存储系统,目前成熟度极高。在系统的高可用性是大家重视的一个方面,Redis 在满足在线的高可用的的方面,选择了Sentinel模式来完成。
Redis Sentinel模式,是基于 Redis 进行高可用性实现的,它由几个角色构成,Sentinel 进程,就相当于一个 sentinel 哨兵,它的目标是监控集群中的master和slave,并在发生故障事件时负责管理;其中sentinel角色要完成的最重要的任务就是选举出master哨兵。
由于sentinel是一种resolver,其本质就是要根据一定的规则来实现一定的功能,所以 sentinel 需要由一个master实现选举保持其一致性。而master sentinel就是用来处理 选举sentinel主控节点过程。
选举 sentinel 主控节点的过程会比较繁琐,需要考虑到sentinel之间的互相通信状态,以及主从机器之间的状态,将sentinel变成master sentinel的步骤如下:
1. Sentinel 首先认识master的状态和类型,这需要sentinel和master之间的协作
2. Sentinel 会记录master的状态,以及master之间的通信状态,即sentinel节点是否可用
3. 只有存活的sentinel节点数量大于一半的sentinel节点,才可以成为master sentinel
4. master sentinel负责选举sentinel主控节点,将该节点保存在sentinel_master中
由于采用sentinel模式来实现Redis的高可用,sentinel之间要能够互相通讯,才可以防止Redis集群发生故障。而选举sentinel主控节点工作,也是sentinel主控集群的一部分,通过sentinel之间的互联,将sentinel比作哨兵的选举之路,最终选出master sentinel节点,并及时保持对Redis集群的监控,从而使Redis集群保持高可用。
相关文章