Redis哨兵(Sentinel)模式
创始人
2024-05-29 18:55:36
0

前言

上一期实现了Redis的主从复制架构,由于主从模式在主节点宕机故障时整个Redis服务都不能再执行写操作,而无法保证Redis在整个系统中的高可用

Redis提供了Sentinel哨兵机制来解决以上问题,当哨兵服务监测到master下线或宕机,哨兵会自动选举一个slave作为新的master,然后通过发布订阅模式通知其他所有的从节点,修改配置文件,让它们切换主机

简单的说哨兵就是带有自动故障转移功能的主从架构!

哨兵架构原理

如下是单个哨兵

**原理:**哨兵是通过发送命令到各个节点,然后等待Redis服务器响应的方式,来监控运行的各个Redis节点的状态

若某一时刻由于网络延迟等原因(但实际master并未出现故障),哨兵一直未收到master节点的状态响应,而选举了新的master,导致出现了多个master,引起主从复制错乱,这种情况称为——脑裂

脑裂情况的存在实际中会使用多哨兵模式:哨兵除了监控各个Redis服务节点的状态之外,哨兵之间也会互相监控

假设master节点故障,哨兵1先检测到了这个结果,仅仅是哨兵1主观的认为master节点不可用,系统并不会马上进行failover故障转移,选举新master的过程,当一半以上的哨兵也检测到master不可用时,那么哨兵之间就会进行一次投票选举,选举一个slave作为新的master,再由一个哨兵进行failover操作。切换成功后,就会通过发布订阅模式,通知各个哨兵和slave切换master

一主二从三哨兵

搭建哨兵架构

在上一期搭建好的Redis主从复制架构的基础上,完成Redis多哨兵模式的搭建

1、在redis源码包目录下复制出sentinel.conf文件到redis安装的根目录并按如下修改

- sentinel1# 开启守护线程的(后台)方式启动daemonize  yes# 关闭保护模式protected-mode no# 哨兵服务默认端口是26379port 26379# 哨兵模式默认工作目录dir /tmp# 监控的redis主节点服务,mymaster是可自定义的服务名# 2 代表有两个或两个以上的哨兵认为master不可用的时候,才会进行故障转移操作sentinel monitor mymaster 192.168.31.161 8001 2# redis.conf中开启了requirepass,所有连接Redis服务的客户端(包括哨兵)都要提供访问密码sentinel auth-pass mymaster 123456- sentinel2daemonize  yesprotected-mode noport 26380dir /tmpsentinel monitor mymaster 192.168.31.161 8001 2sentinel auth-pass mymaster 123456- sentinel3daemonize  yesprotected-mode noport 26381dir /tmpsentinel monitor mymaster 192.168.31.161 8001 2sentinel auth-pass mymaster 123456

2、配置好三台机的sentinel.conf文件后,先启动三个Redis服务,再启动三个哨兵

**启动三个哨兵:**这里为了方便看日志,在sentinel.conf配置文件中可以先关闭后台启动方式daemonize no

# 在redis的bin目录下执行
./redis-sentinel ../sentinel.conf

三个哨兵启动后,可在任一个中看到检测出的主从节点,已经另外两个哨兵(互相监控)

3、验证sentinel哨兵机制

  • 使用redis-cli客户端进入任意一个哨兵服务查看sentinel信息
  • 宕掉8001的redis主节点服务,查看是否自动选举出了新的master
./redis-cli -p 26379
> info sentinel # 查看当前哨兵服务的信息


如下,手动宕掉(停掉进程)8001的redis主节点服务,当有2个哨兵发现8001的服务shutdown后,这里哨兵重新选举了8003的服务作为新的master节点,并由26381这个哨兵去做了failover故障转移,并通知另两个哨兵做了主从切换

26381哨兵中的日志:

26379和26380两个哨兵中的日志一样:

8003的服务作为新的master节点,原来为只读,此时可在8003上进行写操作

其它细节:

1)故障转移之后,三个哨兵sentinel.conf配置文件中的sentinel monitorIP和端口已自动修改为新的master节点的信息

2)原来的master节点8001已经down了,重新启动8001的redis服务它会作为一个从节点提供服务(等你回来后,你已不再是leader

后记

redis哨兵是带有自动故障转移功能的redis主从架构,但这两种模式它们都无法解决单节点的并发压力和物理上线问题

  • 这两种模式下,客户端所有的写操作(请求)都是始终在一个节点上,在并发非常大的情况下单个节点无法处理导致阻塞设置宕机(即单节点的高并发
  • redis是NoSQL,所有的写请求都落在一个节点的内存中,并且redis默认是开启持久化(AOF/RDB),对这个节点的内存和磁盘的IO要求就非常的高(单节点物理上线问题

此时就需要Redis的集群来解决以上的所有问题!

相关内容

热门资讯

恩威医药去年净利腰斩,市场竞争... 4月20日,恩威医药(301331.SZ)发布了2024年年报和2025年第一季度报告。公司2024...
这家新央企,成立9家能源下属公... 转自:中国能源报中国资源循环集团9家子公司揭牌成立。据天津日报4月19日报道,4月18日,在中国资源...
赛摩智能(300466.SZ)... 格隆汇4月20日丨赛摩智能(300466.SZ)公布2024年年度报告,2024年度,2024年公司...
中办、国办印发重要《规定》 受权发布 | 中共中央办公厅 国务院办公厅印发《农村基层干部廉洁履行职责规定》新华社北京4月20日电...
800增强ETF季报解读:份额... 2025年第一季度,银华中证800增强策略交易型开放式指数证券投资基金(简称“800增强ETF”)表...
南宁:以“人工智能+”赋能千行... 转自:南宁发布在这个科技与梦想交相辉映的时代,人工智能已不再是遥不可及的概念构想,随着人工智能技术的...
业绩增势不再,万马股份2024... 北京商报讯(记者 马换换 王蔓蕾)4月19日,万马股份(002276)披露2024年年报显示,公司报...
接了个电话银行卡里95万被转走 来源:@经济观察报微博 【#接了个电话银行卡里95万被转...
超900人签署"反关... 据《商业内幕》(Business Insider)报道,当地时间4月19日,包括两位诺贝尔奖获得者在...
上海市闵行区法院发布《知识产权... 中国青年报客户端讯(中青报· 中青网见习记者 刘胤衡 记者 陈晓)蓝牙耳机在配对时弹窗显示他人注册商...
中际旭创(300308.SZ)... 中际旭创(300308.SZ)发布2024年年度报告,该公司营业收入为238.62亿元,同比增长12...
平谷峪口贡椿熟了,市民能在城里... 转自:北京日报客户端4月20日是谷雨,平谷区峪口镇的香椿下树了。当天,镇里和物美、永辉等企业签约,为...
胡桃夹子中那个木偶的名字 胡桃夹子中那个木偶的名字故事发生在圣诞前夕,在斯塔鲍姆家的热闹舞会中,众小宾客欣赏趣怪木偶的演出,小...
万祥科技(301180.SZ)... 万祥科技(301180.SZ)披露2025年第一季度报告,报告期公司实现营收2.8亿元,同比增长34...
怡然见晋中 | 到这里沉浸式春... 转自:晋中市政府门户网站4月19日,左权文艺工作者正在太谷美宝山庄第十一届桃花节百姓大舞台上演出左权...
港通医疗十大流通股东格局生变:... 4月20日消息,港通医疗公告显示,截止2024年12月31日,相较于上一报告期,十大流通股东发生了以...
伊索寓言中马和驴的寓意是什么? 伊索寓言中马和驴的寓意是什么?《马和驴》的寓意:助人者自助。1、《马和驴》原文:某人有一匹马和一头驴...
在京台胞台商台生公益植树添绿京... 转自:北京日报客户端4月20日,“百个家庭百棵树——在京台胞台商台生公益植树”活动在房山区举行。在京...
在央视新闻特别节目《不如追风去... #小尼魔术挑战大变汽车#在央视新闻特别节目《不如追风去》中,小尼以一场魔术挑战“大变汽车”惊艳开场,...
“春韵黔茶”茶会:一场沉浸式春...   多彩贵州网讯 4月20日下午,贵州长征文化数字艺术馆举办了一场以“春韵黔茶”为主题的茶会。该活动...