欢迎关注微信公众号:互联网全栈架构
一
哨兵模式介绍
哨兵模式(Sentinel)是Redis提供的高可用解决方案,作为一个分布式系统,它包含了多个Sentinel节点和Redis节点,这些Sentinel节点会监控Redis节点的状态(通常为主从复制),如果发现master节点不可用时,会自动将其中一个slave节点提升为master节点,从而实现了自动故障转移。
总体来讲,哨兵模式的主要功能有如下几个方面:
监控:Sentinel会不断检查Redis的主、从服务器是否正常工作;
通知:如果Redis实例有故障,会通知到系统管理员或者相关程序;
自动故障转移:如果主节点不可用,自动把其中一个从节点提升为主节点;

二
环境搭建
接下来我们演示一下Redis哨兵模式的搭建,为了简化起见,哨兵只有一个实例,而Redis服务器有三个,分别为一主两从。同时,都在一台服务器上搭建,如果在正式的生产环境,需要在不同的服务器上进行配置,这样才能实现真正的高可用,不管是在一台或者多台服务器上搭建,操作步骤和配置项几乎完全一样。
先搭建三个Redis服务,一主两从,因为是在一台服务器上操作,通过端口来区分不同的服务,分别为6379、6380、6381,拷贝三份Redis配置文件,按照redis_6379.conf这样的方式命名。修改的主要信息如下:
127.0.0.1:6380>inforeplication#Replicationrole:masterconnected_slaves:1slave0:ip=127.0.0.1,port=6381,state=online,offset=60102,lag=0master_failover_state:no-failovermaster_replid:78b90907468c5721834570114a74ff9bcce302c5master_replid2:fb94f4afa0b3535b79e54f9287f60150b76cd9d5master_repl_offset:60102second_repl_offset:2694repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:60102
发现6380端口对应的服务已经成为了master,对6381是其对应的slave,如果再把6379的服务启动起来,它也成为了6380的slave。
可以看出,Redis的哨兵模式可以进行自动故障转换,当master宕机以后,自动把其中的一个slave提升为master,从而继续对外提供服务,当然,这样的切换需要一定的时间。
四
总结
哨兵模式是Redis提供的一个高可用架构,它有一组专门的哨兵进程来监控Redis主从节点,并在发现故障后自动进行转移,从而实现了Redis服务的高可用,系统的健壮性也更高。
然而,哨兵模式也有它的缺点,比如增加维护成本,容量有限等,相应地,Redis官方还提供集群模式,我们会在后续的文章中进行介绍,敬请期待。
创作不易,烦请点赞分享,感谢!
推荐阅读:
本篇文章来源于微信公众号: 互联网全栈架构
微信扫描下方的二维码阅读本文

Comments NOTHING