Sentinel(哨兵)实现Redis的高可用性

a)原理

Sentinel(哨兵)是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进行下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。

Redis提供的sentinel(哨兵)机制,通过sentinel模式启动redis后,自动监控master/slave的运行状态,基本原理是:心跳机制+投票裁决

① 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。

② 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。

③ 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

服务搭建:

环境准备
redis-master 192.168.162.200 redis主 开启sentinel
redis-slave1 192.168.162.201 redis从 开启sentinel
redis-slave1 192.168.162.199 redis从 开启sentinel

1、开启所有机器上的redis
redis-server /usr/local/redis/etc/redis.conf

yum源安装的启动命令为:systemctl start redis

2、在主上登录查询主从关系,确实主从已经实现;

确定redis主从关系已经存在

redis-cli -h 192.168.162.199 info Replication

在这里插入图片描述
3、在任意一台redis主机上配置sentinel 哨兵

vim /usr/local/redis/sentinel.conf(该路径为redis的安装路径)

		port 26379   #默认监听端口26379
		#sentinel announce-ip 1.2.3.4   #监听地址,注释默认是0.0.0.0
		sentinel monitor mymaster 192.168.30.107 6379 1   #指定主redis和投票裁决的机器数,即至少有1个	sentinel节点同时判定主节点故障时,才认为其真的故障
		下面保存默认就行,根据自己的需求修改
		sentinel down-after-milliseconds mymaster 5000   #如果联系不到节点5000毫秒,我们就认为此节点下线。
		sentinel failover-timeout mymaster 60000   #设定转移主节点的目标节点的超时时长。
		sentinel auth-pass <master-name> <password>   #如果redis节点启用了auth,此处也要设置password。
		sentinel parallel-syncs <master-name> <numslaves>   #指在failover过程中,能够被sentinel并行配置的从节点的数量;

4、开启redis-sentinel服务 ,观察是否26379端口状态;

redis-sentinel /usr/local/redis/sentinel.conf

redis-sentinel服务开启后, 其配置文件sentinel.conf里会出现redis的配置信息,如下;

vim /usr/loacl/redis/sentinel.conf

5、模拟主master-redis 故障,一个从升为新主

干掉192.168.162.200的redis服务
ps -ef | grep redis
kill -9
在这里插入图片描述
从从上查询新主是谁
redis-cli -h 192.168.162.199 info Replication
查询新主是谁
查看新主日志;
tail -100f /uer/local/redis/log/redis.log
在这里插入图片描述
然后再重新开启旧主服务;
在这里插入图片描述
观察Sentinel哨兵状态;
恢复旧主 观察新主状态
新主成功的代替了旧主,旧主修复后成为了redis从

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值