网易首页 > 网易号 > 正文 申请入驻

Redis官方的高可用性解决方案

0
分享至

  Redis主从复制的问题

  Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用:

  一旦主节点宕机从节点作为主节点备份可以随时顶上来。

  扩展主节点读能力,分担主节点读压力。

  主从复制同时存在以下几个问题:

  一旦主节点宕机从节点晋升成主节点,同时需要修改应用方主节点地址,还需要命令所有从节点复制新的主节点,整个过程需要人工干预

  主节点写能力受到单机的限制

  主节点存储能力受到单机的限制

  原生复制的弊端在早期的版本中也会比较突出,比如:Redis复制中断后,从节点会发起psync。此时如果同步不成功,则会进行全量同步主库执行全量备份的同时,可能会造成毫秒或秒级的卡顿

  Redis 的 哨兵(Sentinel)深入探究Redis Sentinel的架构

  Redis的哨兵机制就是解决我们以上主从复制存在缺陷(选举问题),保证我们的Redis高可用,实现自动化故障发现与故障转移。

  该系统执行以下三个任务:

“ 监控:哨兵会不断检查你的主服务器和从服务器是否运作正常。 提醒:当被监控的某个Redis服务器出现问题时,哨兵可以通过API给程序员发送通知 自动故障转移:主服务器宕机,哨兵会开始一次自动故障转移操作,升级一个从服务器为主服务器,并让其他从服务器改为复制新的主服务器.
配置 Sentinel

  Redis 源码中包含了一个名为 sentinel.conf 的文件, 这个文件是一个带有详细注释的 Sentinel 配置文件示例。

  运行一个 Sentinel 所需的最少配置如下所示:

“ 1)sentinel monitor mymaster 192.168.10.202 6379 2 Sentine监听的maste地址,第一个参数是给master起的名字,第二个参数为master IP,第三个为master端口,第四个为当该master挂了的时候,若想将该master判为失效, 在Sentine集群中必须至少2个Sentine同意才行,只要该数量不达标,则就不会发生故障迁移。 ----------------------------------------------------------------------------------------------- 2)sentinel down-after-milliseconds mymaster 30000 表示master被当前sentinel实例认定为失效的间隔时间,在这段时间内一直没有给Sentine返回有效信息,则认定该master主观下线。 只有在足够数量的 Sentinel 都将一个服务器标记为主观下线之后, 服务器才会被标记为客观下线,``将服务器标记为客观下线所需的 Sentinel 数量由对主服务器的配置决定。 ----------------------------------------------------------------------------------------------- 3)sentinel parallel-syncs mymaster 2 当在执行故障转移时,设置几个slave同时进行切换master,该值越大,则可能就有越多的slave在切换master时不可用,可以将该值设置为1,即一个一个来,这样在某个 slave进行切换master同步数据时,其余的slave还能正常工作,以此保证每次只有一个服务器处于不能处理命令请求的状态。 ----------------------------------------------------------------------------------------------- 4)sentinel can-failover mymaster ``yes 在sentinel检测到O_DOWN后,是否对这台redis启动failover机制 ----------------------------------------------------------------------------------------------- 5)sentinel auth-pass mymaster 20180408 设置sentinel连接的master和slave的密码,这个需要和redis.conf文件中设置的密码一样 ----------------------------------------------------------------------------------------------- 6)sentinel failover-timeout mymaster 180000 failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failoer失败。 执行故障迁移超时时间,即在指定时间内没有大多数的sentinel 反馈master下线,该故障迁移计划则失效 ----------------------------------------------------------------------------------------------- 7)sentinel config-epoch mymaster 0 选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步。这个数字越小, 完成故障转移所需的时间就越长。 ----------------------------------------------------------------------------------------------- 8)sentinel notification-script mymaster ``/var/redis/notify``.sh 当failover时,可以指定一个``"通知"``脚本用来告知当前集群的情况。 脚本被允许执行的最大时间为60秒,如果超时,脚本将会被终止(KILL) ----------------------------------------------------------------------------------------------- 9)sentinel leader-epoch mymaster 0 同时一时间最多0个slave可同时更新配置,建议数字不要太大,以免影响正常对外提供服务。

  主观下线和客观下线

“ 主观下线:指的是单个 Sentinel 实例对服务器做出的下线判断。 客观下线:指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN主观下线 判断。
Redis Sentinel的工作原理

  1.每个 Sentinel 以每秒一次的频率向它所知的主服务器、从服务器以及其他 Sentinel 实例发送一个 PING 命令

  2.如果一个实例距离最后一次有效回复 PING 命令的时间超过指定的值, 那么这个实例会被 Sentinel 标记为主观下限

  3.正在监视这个主服务器的所有 Sentinel 要以每秒一次的频率确认主服务器的确进入了主观下线状态

  4.有足够数量的 Sentinel 在指定的时间范围内同意这一判断, 那么这个主服务器被标记为客观下限

  5.每个 Sentinel 会以每 10 秒一次的频率向它已知的所有主服务器和从服务器发送 INFO 命令。当一个主服务器被 Sentinel 标记为客观下线时, Sentinel 向下线主服务器的所有从服务器发送 INFO 命令的频率会从 10 秒一次改为每秒一次。

  6.Sentinel和其他Sentinel协商主节点的状态,如果主节点处于SDOWN状态,则投票自动选出新的主节点。将剩余的从节点指向新的主节点进行数据复制

  7.当没有足够数量的Sentinel同意主服务器下线时,主服务器客观下线状态就会被移除。当主服务器重新向SentinelPING命令返回有效回复时,主服务器主观下线状态就会被移除。

  一个 Sentinel 可以与其他多个 Sentinel 进行连接, 各个 Sentinel 之间可以互相检查对方的可用性, 并进行信息交换。

  你无须为运行的每个 Sentinel 分别设置其他 Sentinel 的地址, 因为 Sentinel 可以通过发布与订阅功能来自动发现正在监视相同主服务器的其他 Sentinel

“ 每个 Sentinel 会以每两秒一次的频率, 通过发布与订阅功能, 向被它监视的所有主服务器和从服务器的频道发送一条信息, 信息中包含了 Sentinel 的 IP 地址、端口号和运行 ID (runid)。 每个 Sentinel 都订阅了被它监视的所有主服务器和从服务器的频道, 查找之前未出现过的 sentinel 。当一个 Sentinel 发现一个新的 Sentinel 时, 它会将新的 Sentinel 添加到一个列表中。 Sentinel 发送的信息中还包括完整的主服务器当前配置。如果一个 Sentinel 包含的主服务器配置比另一个 Sentinel 发送的配置要旧, 那么这个 Sentinel 会立即升级到新配置上。 在将一个新 Sentinel 添加到监视主服务器的列表上面之前, Sentinel 会先检查列表中是否已经包含了和要添加的 Sentinel 拥有相同运行 ID 或者相同地址(包括 IP 地址和端口号)的 Sentinel , 如果是的话, Sentinel 会先移除列表中已有的那些拥有相同运行 ID 或者相同地址的 Sentinel , 然后再添加新 Sentinel
转移故障

  一次故障转移操作由以下步骤组成:

“ 发现主服务器已经进入客观下线状态。 对我们的当前纪元进行自增, 并尝试在这个纪元中当选。 如果当选失败, 那么在设定的故障迁移超时时间的两倍之后, 重新尝试当选。如果当选成功, 那么执行以下步骤。 选出一个从服务器,并将它升级为主服务器。 向被选中的服务器发送 SLAVEOF NO ONE 命令,让它转变为主服务器。 通过 发布与订阅功能, 将更新后的配置传播给所有其他 Sentinel , 其他 Sentinel 对它们自己的配置进行更新。 向已下线主服务器的从服务器发送 SLAVEOF 命令, 让它们去复制新的主服务器。 当所有从服务器都已经开始复制新的主服务器时, 领头 Sentinel 终止这次故障迁移操作。

  参考:

  https://redis.io/

  https://www.cnblogs.com/bingshu/p/9776610.html

  免责声明:

  本公众号部分分享的资料来自网络收集和整理,所有文字和图片版权归属于原作者所有,且仅代表作者个人观点,与本公众号无关,文章仅供读者学习交流使用,并请自行核实相关内容,如文章内容涉及侵权,请联系后台管理员删除。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
四川律师谭万潇终于被抓了,这三年,是谁在给他撑伞?

四川律师谭万潇终于被抓了,这三年,是谁在给他撑伞?

千千法言
2026-06-12 12:02:47
震惊!网传杭州大厂裁员,测试和前端裁员50%,产品15%,后端30%

震惊!网传杭州大厂裁员,测试和前端裁员50%,产品15%,后端30%

火山詩话
2026-06-12 15:45:20
廖启智去世5年后,陈敏儿去世,此前幼子5岁离世,夫妻悲欢一生

廖启智去世5年后,陈敏儿去世,此前幼子5岁离世,夫妻悲欢一生

文刀贰
2026-06-12 21:27:03
这4个行业,已经发不出工资了!真的很严重了

这4个行业,已经发不出工资了!真的很严重了

职场资深秘书
2026-06-11 16:00:48
国安部披露:在我国某海域发现有较大型活体海洋动物被挂上传感器,窃取海洋敏感数据

国安部披露:在我国某海域发现有较大型活体海洋动物被挂上传感器,窃取海洋敏感数据

每日经济新闻
2026-06-12 13:16:05
看完世界杯第2场,球迷看清了3个不争事实,韩国最擅长踢欧洲球队

看完世界杯第2场,球迷看清了3个不争事实,韩国最擅长踢欧洲球队

侃球熊弟
2026-06-12 11:56:01
谢娜再次翻车,这一次,她踢到铁板了

谢娜再次翻车,这一次,她踢到铁板了

桌子的生活观
2026-06-12 11:58:27
捷克球迷怒斥韩国!没有裁判你们赢不了,如果输给了中国我们认了

捷克球迷怒斥韩国!没有裁判你们赢不了,如果输给了中国我们认了

酷侃体坛
2026-06-12 18:57:01
红星观察丨世界杯遇冷,是FIFA的错还是时代的锅

红星观察丨世界杯遇冷,是FIFA的错还是时代的锅

红星新闻
2026-06-12 13:50:28
韩国也有胡尔克!25岁吴贤揆世界杯首秀致胜 大腿肌肉如绿巨人

韩国也有胡尔克!25岁吴贤揆世界杯首秀致胜 大腿肌肉如绿巨人

智道足球
2026-06-12 16:51:52
老人入住精神病院7年后查出梅毒;哈尔滨精神专科白渔泡医院称系旧疾,家属出示入院前梅毒阴性检测报告反驳

老人入住精神病院7年后查出梅毒;哈尔滨精神专科白渔泡医院称系旧疾,家属出示入院前梅毒阴性检测报告反驳

大风新闻
2026-06-12 12:12:20
纳指收涨0.3% SpaceX上市首日收涨19%

纳指收涨0.3% SpaceX上市首日收涨19%

财联社
2026-06-13 04:02:07
世界杯没开始,法国队先赢一局?全员拎着“一套房”出行,把机场走出高定T台!

世界杯没开始,法国队先赢一局?全员拎着“一套房”出行,把机场走出高定T台!

新欧洲
2026-06-12 20:40:21
私生活混乱,从央视主持到劳改犯,如今靠直播打赏讨生活

私生活混乱,从央视主持到劳改犯,如今靠直播打赏讨生活

素衣读史
2026-06-11 21:56:30
布达拉宫地下世界复杂得吓人!
金碧辉煌下藏着1200多个“地垄”

布达拉宫地下世界复杂得吓人! 金碧辉煌下藏着1200多个“地垄”

西楼知趣杂谈
2026-06-12 08:54:44
刘宇宁发文回应恋情:清醒坦荡的态度,才是明星该有的模样

刘宇宁发文回应恋情:清醒坦荡的态度,才是明星该有的模样

陈意小可爱
2026-06-13 00:50:31
“SpaceX没说,但所有线索都指向中国”

“SpaceX没说,但所有线索都指向中国”

观察者网
2026-06-12 09:23:04
SpaceX美国IPO首日开盘报150美元

SpaceX美国IPO首日开盘报150美元

界面新闻
2026-06-12 23:49:26
内塔尼亚胡:特朗普不打伊朗了,没提前告诉我

内塔尼亚胡:特朗普不打伊朗了,没提前告诉我

政知新媒体
2026-06-12 19:06:11
中方宣布对菲制裁令,不到24小时,菲防长对华发声,态度很强硬

中方宣布对菲制裁令,不到24小时,菲防长对华发声,态度很强硬

李健政观察
2026-06-12 15:05:01
2026-06-13 04:20:49
IT架构师联盟 incentive-icons
IT架构师联盟
IT架构实战分享
843文章数 7672关注度
往期回顾 全部

科技要闻

刚刚,人类历史上首位万亿美元富豪诞生!

头条要闻

美加墨世界杯第二场比赛就现空座 英媒:尴尬

头条要闻

美加墨世界杯第二场比赛就现空座 英媒:尴尬

体育要闻

欧洲恐韩?肉德维德?

娱乐要闻

一天4个瓜,肖战热巴最意外

财经要闻

万亿美元顺差背后,透露这些信号

汽车要闻

标配激光雷达/双动力可选 昊铂S600限时售17.99万起

态度原创

家居
教育
健康
房产
数码

家居要闻

空间微调 移形换境

教育要闻

家长成了“疯女人”,被女儿作业搞崩溃,网友:太真实

老人、小孩、孕妇,吃粽子有啥风险

房产要闻

海南最赚钱行业曝光!最快4年半,海口全款买三房!

数码要闻

英国监管机构警告:亚马逊、eBay仍在售可能致命的假冒手机充电器

无障碍浏览 进入关怀版