Redis 哨兵机制

Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务:
· 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。
· 提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。
· 自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master, 并让失效Master的其他Slave改为复制新的Master; 当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。

    哨兵(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,然后自动修改相关配置.
    虽然哨兵(sentinel) 释出为一个单独的可执行文件 redis-sentinel ,但实际上它只是一个运行在特殊模式下的 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动哨兵(sentinel).哨兵(sentinel) 的一些设计思路和zookeeper非常类似单个哨兵(sentinel)。


image.png

哨兵模式修改配置

在redis 安装文件中找到 sentinel.conf 配置文件


image.png

修改监听redis 的IP和端口号以及选举次数,以及密码
主节点 名称 IP 端口号 选举次数


image.png

修改心跳检测 1000毫秒


image.png

因为我的redis服务器很少一主一从 所以最多合格节点数只能配置成一
sentinel parallel-syncs mymaster 数值 --- 最多多少合格节点
image.png

启动哨兵模式
/usr/local/redis/etc/注意: 这个路径要根据你的sentinel所在的路径写。
./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &
启动结果如下


image.png

下面再来确定一下从redis 的leader


image.png

ok ,现在让主redis 宕机


image.png

因为现在从redis 就一个 192.168.2.108


image.png

此时查看从redis 的信息 这是从redis 的角色已经变成master了


image.png

此时插入数据,已经可以做写入了

image.png

至此redis 的哨兵机制已经验证成功了。
。。。。。
那么如果现在把原先那个主的启动又会怎样呢?感兴趣的小伙伴可以继续向下看实验。

image.png

原来主的角色已经变成从的了。已经没有写的权限了。


image.png

好了,针对本次实验,总结一下整个过程。
本次实验
1、最开始 主的redis 服务器 命名为A 从的redis服务器命名为B。
2、为 B 配上redis的哨兵监听。
3、让A宕机,此时就剩一台B 。根据哨兵机制的投票选举算法只能选择B 此时B 就成了主redis。
4、当原先A重新启动,此时A 已经是从redis了。

你可能感兴趣的:(Redis 哨兵机制)