redis的哨兵机制

redis的哨兵机制的作用

1. 管理redis集群

2.监控选举策略

3.心跳监测

 

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

每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的”主观认为宕机” Subjective Down,简称sdown).

若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称odown),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置.

 

今天我们使用一个哨兵来举例

在使用哨兵之前我们需要搭建redis集群,集群是哨兵机制的前提下条件,如下图

redis的哨兵机制

 

创建哨兵需要修改哨兵的配置文件,你可以专门安装一个redis用来充当哨兵,并修改redis源码文件的信息

redis的哨兵机制

主要修改三个位置:

sentinel monitor mymast  192.168.110.133 6379 1  #主节点 名称 IP 端口号 选举次数

sentinel auth-pass mymaster 123456    #主节点密码

sentinel down-after-milliseconds mymaster 30 #心跳监测时间,毫秒为单位

./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &  启动哨兵

启动哨兵后出现如下图,代表配置成功,可以试验效果了.不过redis在3.0后有相对更好的集群方式,哨兵机制用的不算很多.

redis的哨兵机制