redis哨兵机制

哨兵机制存在的意义:

    为了实现redis故障转移的自动化。自动发现,自动转移。不需要人工参与。

 

用户管理多个Redis服务器,该系统执行三个任务:

  • 监控:哨兵会不间断的检查Master和Slave是否正常运行
  • 提醒:当被监控的某个Redis出现问题,哨兵通过API向管理员或者应用程序发送通知
  • 自动故障迁移:当一个Master不能正常工作,哨兵会开始一次故障迁移,然后将失效的Master的其中一个Slave升级为新的Master,并让失效的Master的其他Slave改为复制新的Master;当客户端尝试链接失效的Master时,集群会向客户端返回新的Master的地址,使集群可以使用Master代替失效的Master。

 

哨兵是一个分布式系统,可以在一个架构中运行多个哨兵进程,这些进程使用流言协议接收关于Master是否下线的信息,并使用投票协议决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master

  • 每个哨兵会向其它哨兵、master、slave定时发送信息,确认对方是否活着, 如果对方在指定时间内未回应,则暂时认为对方已挂。
  • 若哨兵(sentinel)群多数sentinel认为某一master么响应,系统才认为该master死亡(down机),通过一定的vote算法,从剩下的slave节点,选一台提升为master,然后自动修改相关配置。

 

虽然哨兵释出为一个单独的可执行文件redis-sentinel,但实际上它只是一个运行在特殊模式下的Redis服务器,可以在启动一个普通的Redis服务器时通过给定 --sentinel 选项来启动哨兵。
posted @ 2019-08-03 20:01  爱吃猫的鱼i  阅读(420)  评论(0编辑  收藏  举报