我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Redis Sentinel哨兵模式的原理及配置

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Redis Sentinel哨兵模式的原理及配置

这篇文章主要介绍“Redis Sentinel哨兵模式的原理及配置”,在日常操作中,相信很多人在Redis Sentinel哨兵模式的原理及配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis Sentinel哨兵模式的原理及配置”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!


一.安装配置
在1个master 1个slave 的环境中加一个sentinel,
进入redis源码安装目录copy sentinel.conf文件
# cd /u01/packages/redis-3.0.6
# cp sentinel.conf   /usr/local/redis/etc/
# vi /usr/local/redis/etc/sentinel.conf
daemonize yes
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

参数解释:
sentinel monitor mymaster 127.0.0.1 6379 1
指示 Sentinel 去监视一个被命名为 mymaster 的master,可指定为任何名字
Master  IP为127.0.0.1 , 端口号为 6379 ,
这个master判断为失效至少需要 1 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)
注意,无论你设置多少个 Sentinel 同意才能判断一个服务器失效, 一个 Sentinel 都需要获得系统中多数(majority) Sentinel 的支持, 才能发起一次自动故障迁移

sentinel down-after-milliseconds mymaster 30000
down-after-milliseconds 指定了 Sentinel 认为master已经断线所需的毫秒数

sentinel parallel-syncs mymaster 1
parallel-syncs 指定了在执行故障转移时, 最多可以有多少个slave同时对新的master进行同步, 这个数字越小, 完成故障转移所需的时间就越长

sentinel failover-timeout mymaster 180000
failover-timeout 指定故障切换允许的毫秒数,超过这个时间,就认为故障切换失败,默认为3分钟

启动sentinel
# redis-sentinel /usr/local/redis/etc/sentinel.conf

查看状态
# redis-cli -p 26379
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=1,sentinels=1

至此,配置sentinel工作完成

Sentinel 相关命令
• INFO sentinel的基本状态信息
• PING :返回 PONG 
• SENTINEL masters :列出所有被监视的master,以及这些master的当前状态
• SENTINEL slaves <master name> :列出给定master的所有slave服务器,以及这些slave的当前状态
• SENTINEL get-master-addr-by-name <master name> : 返回给定名字的master的 IP 地址和端口号。 如果这个master正在执行故障转移操作, 或者针对这个master的故障转移操作已经完成, 那么这个命令返回新的master的 IP 地址和端口号。
• SENTINEL reset <pattern> : 重置所有名字和给定模式 pattern 相匹配的master。 pattern 参数是一个 Glob 风格的模式。 重置操作清除master目前的所有状态, 包括正在执行中的故障转移, 并移除目前已经发现和关联的,master的所有slave和 Sentinel
• SENTINEL failover <master name> : 当master失效时, 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移 (不过发起故障转移的 Sentinel 会向其他 Sentinel 发送一个新的配置,其他 Sentinel 会根据这个配置进行相应的更新)。

二. 原理:
故障转移时主要是解决两个问题,一是选Leader Sentinel,二是选新的master

1.选Leader Sentinel规则

Sentinel 自动故障迁移使用 Raft 算法来选举领头(Leader)Sentinel , 从而确保在一个给定的纪元时期(epoch)里, 只有一个Leader产生。
表示在同一个时期, 不会有两个 Sentinel 同时被选中为Leader, 并且各个 Sentinel 在同一个时期中只会对一个Leader进行投票。

注:Raft算法主要思想是同一期Term(Epoch)投票中少数服从多数原则达成一致,选出Leader
具体算法这里不过多解释,详细可参考文章: https://www.jianshu.com/p/8e4bbe7e276c

 

2.选新master规则
1> 在失效主服务器属下的从服务器当中, 那些被标记为主观下线、已断线、或者最后一次回复 PING 命令的时间大于五秒钟的从服务器都会被淘汰。
2> 在失效主服务器属下的从服务器当中, 那些与失效主服务器连接断开的时长超过 down-after 选项指定的时长十倍的从服务器都会被淘汰。
3> 在经历了以上两轮淘汰之后剩下来的从服务器中, 我们选出复制偏移量(replication offset)最大的那个slave作为新的master服务器; 如果复制偏移量不可用, 或者slave服务器的复制偏移量相同, 那么带有最小运行 ID 的那个从服务器成为新的master。

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

到此,关于“Redis Sentinel哨兵模式的原理及配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Redis Sentinel哨兵模式的原理及配置

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP中redis哨兵模式怎么配置

PHP中Redis哨兵模式配置哨兵模式是Redis的高可用部署架构,引入哨兵监控服务器健康并自动故障转移。配置步骤包括:创建哨兵配置文件,指定要监控的主服务器和配置选项。启动哨兵。在PHP代码中使用Redis::OPT_SENTINEL配置客户端连接到哨兵。当主服务器故障时,哨兵会自动选择一个从服务器作为新主服务器并同步数据。优点:高可用性、自动故障转移、可扩展性、监视和警报。
PHP中redis哨兵模式怎么配置
2024-04-12

使用Docker配置redis sentinel哨兵的方法步骤

目录1.配置主从2. 配置哨兵3.SpringBoot连接本文演示一主二从。先说一下遇到的问题。我看网上说想配置哨兵,必须让启动Redis的docker网络模式为host,否则无法访问到从还是什么的。我指定--network host后无
2022-07-11

Redis哨兵模式怎么配置和使用

Redis哨兵模式是一种用于监控和管理Redis主从复制和高可用性的机制。当主服务器出现故障时,哨兵可以自动将从服务器升级为主服务器,以确保系统的正常运行。以下是Redis哨兵模式的配置和使用方法:配置哨兵节点:在Redis的配置文件中配置
Redis哨兵模式怎么配置和使用
2024-05-07

java连接redis哨兵模式怎么配置

Java连接Redis哨兵模式配置摘要Redis哨兵模式是一种高可用集群架构,可通过哨兵节点监控和管理集群。配置Java客户端连接Redis哨兵模式涉及:创建哨兵配置文件启动哨兵节点修改主节点配置文件重启主节点配置Java客户端,包括集群名称、哨兵节点地址以及超时时间使用Java客户端操作Redis当主节点故障时,哨兵节点会自动触发故障转移过程,选举新主节点并通知客户端和从节点切换。哨兵模式优点:高可用性自动故障转移分布式配置
java连接redis哨兵模式怎么配置
2024-04-02

redis哨兵模式配置的步骤是什么

配置 Redis 哨兵模式可以分为以下几个步骤:安装 Redis:首先需要在多台服务器上安装 Redis。配置主服务器:选择一台服务器作为主服务器,并在其配置文件中设置 server 的配置项,如端口号和密码等。配置从服务器:选择一台或多台
2023-10-26

Nginx工作模式及代理配置的示例分析

小编给大家分享一下Nginx工作模式及代理配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、Nginx 的工作模式1.单进程模式单进程模式下,Ngi
2023-06-29

如何理解FIX协议的原理、消息格式及配置开发

本篇文章给大家分享的是有关如何理解FIX协议的原理、消息格式及配置开发,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、定义FIX协议是由国际FIX协会组织提供的一个开放式协议
2023-06-05

编程热搜

目录