一.哨兵模式
1.简介
Redis Sentinel是Redis官方提供的集群管理工具,可以部署在其他与redis集群可通讯的机器中监控redis集群。
2.特性
监控:能持续监控Redis的主从实例是否正常工作;
通知:当被监控的Redis实例出问题时,能通过API通知系统管理员或其他程序;
自动故障恢复:如果主实例无法正常工作,Sentinel将启动故障恢复机制把一个从实例提升为主实例,其他的从实例将会被重新配置到新的主实例,且应用程序会得到一个更换新地址的通知。
更多访问官方:https://redis.io/topics/sentinel
3.哨兵作用
(1).监控redis(master和slave)是否正常运行;
(2).当master运行出现状况,能够通知另外一个进程自动将slave切换成master。
4.应用场景
当使用redis做master-slave的高可用方案时,如果master宕机了,想自动进行主备切换,可以考虑使用哨兵模式。
二.实战演练
1.环境准备
(1).redis-3.2.9
(2).服务器三台(VMware下的unbutu)都装redis
Master:192.168.247.133
Slave1:192.168.247.134
Slave2:192.168.247.135
2.环境搭建
(1).按照《架构之路Redis系列》如何搭建Redis的主从复制文章,先配置好主从关系。
(2).配置哨兵文件sentinel.conf,分别修改下面几项,具体参数可以根据实际业务修改。
备注:我这里redis安装到/opt/redis-3.2.9/sentinel.conf
IP:Master:192.168.247.133
# sentinel monitor mymaster 127.0.0.1 6379 2
sentinel monitor xiangqubaMaster 192.168.247.133 6379 1
# sentinel down-after-milliseconds mymaster 30000
sentinel down-after-milliseconds xiangqubaMaster 30000
# sentinel config-epoch mymaster 1
sentinel config-epoch xiangqubaMaster 1
# sentinel parallel-syncs mymaster 1
sentinel parallel-syncs xiangqubaMaster 1
IP:Slave1:192.168.247.134
# sentinel monitor mymaster 127.0.0.1 6379 2
sentinel monitor xiangqubaMaster2 192.168.247.133 6379 2
# sentinel down-after-milliseconds mymaster 30000
sentinel down-after-milliseconds xiangqubaMaster2 30000
# sentinel config-epoch mymaster 1
sentinel config-epoch xiangqubaMaster2 1
# sentinel parallel-syncs mymaster 1
sentinel parallel-syncs xiangqubaMaster2 1
IP:Slave2:192.168.247.135
# sentinel monitor mymaster 127.0.0.1 6379 2
sentinel monitor xiangqubaMaster3 192.168.247.133 6379 1
# sentinel down-after-milliseconds mymaster 30000
sentinel down-after-milliseconds xiangqubaMaster3 30000
# sentinel config-epoch mymaster 1
sentinel config-epoch xiangqubaMaster3 1
# sentinel parallel-syncs mymaster 1
sentinel parallel-syncs xiangqubaMaster3 1
(3).启动
分别用下面命令启动三台服务器
a.启动redis服务
$ ./redis-server ../redis.conf
b.启动哨兵服务
$ ./redis-sentinel ../sentinel.conf
(4).测试
a.主机未挂前截图
b.主机挂了后截图
三.总结
关于哨兵模式的介绍就写到这里,工作中redis的哨兵模式是经常会用到的,所以这块的配置希望读者能有所掌握。
本文原文:https://www.xiangquba.cn/2017/07/26/redis-sentinel/