1、Redis Sentinel服务配置

1.1简介
Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:
监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。
Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个从服务器作为新的主服务器。
虽然 Redis Sentinel 释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器, 你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动Redis Sentinel 。
1.2相关配置
案例:
如果要监控两个redis实例,可以进行如下配置Redis安装目录下sentinel.conf文件:
常规配置:
port 26379
daemonize yes
logfile "/var/log/redis/sentinel.log"
#master 7000
sentinel monitor master1 127.0.0.1 7000 2 #配置master名、ip、port、需要多少个sentinel才能判断[客观下线](2)
sentinel down-after-milliseconds master-7000 30000 #配置sentinel向master发出ping,最大响应时间、超过则认为主观下线
sentinel parallel-syncs master-7000 1 #配置在进行故障转移时,运行多少个slave进行数据备份同步(越少速度越快)
sentinel failover-timeout master-7000 180000 #配置当出现failover时下一个sentinel与上一个sentinel对[同一个master监测的时间间隔](最后设置为客观下线)
#master 7001
sentinel monitor master2 127.0.0.1 7001 1
sentinel down-after-milliseconds master-7001 30000
sentinel parallel-syncs master-7001 1
sentinel failover-timeout master-7001 180000
特殊配置:
min-slaves-to-write 1
min-slaves-max-lag 10
通过上面的配置,当一个redis是master时,如果它不能向至少一个slave写数据(上面的min-slaves-to-write指定了slave的数量),它将会拒绝接受客户端的写请求。由于复制是异步的,master无法向slave写数据意味着slave要么断开连接了,要么不在指定时间内向master发送同步数据的请求了(上面的min-slaves-max-lag指定了这个时间)。
1.3 相关术语说明
Sentinel包括两个重要的术语:<主观下线和客观下线>
1. 主观下线(Subjectively Down, 简称 SDOWN)指的是单个 Sentinel 实例对服务器做出的下线判断。
2. 客观下线(Objectively Down, 简称 ODOWN)指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN 判断, 并且通过SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服务器下线判断。
客观下线条件只适用于主服务器: 对于任何其他类型的 Redis 实例, Sentinel 在将它们判断为下线前不需要进行协商, 所以从服务器或者其他 Sentinel 永远不会达到客观下线条件。
只要一个 Sentinel 发现某个主服务器进入了客观下线状态, 这个Sentinel 就可能会被其他 Sentinel 推选出, 并对失效的主服务器执行自动故障迁移操作。
每个Sentinel实例都执行的定时任务
1. 每个Sentinel 以每秒钟一次的频率向它所知的主服务器、从服务器以及其他 Sentinel 实例发送一个 PING 命令。
2. 如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 那么这个实例会被 Sentinel 标记为主观下线。 一个有效回复可以是: +PONG 、 -LOADING 或者-MASTERDOWN 。
3. 如果一个主服务器被标记为主观下线, 那么正在监视这个主服务器的所有 Sentinel 要以每秒一次的频率确认主服务器的确进入了主观下线状态。
4. 如果一个主服务器被标记为主观下线, 并且有足够数量的 Sentinel (至少要达到配置文件指定的数量)在指定的时间范围内同意这一判断, 那么这个主服务器被标记为客观下线。
5. 在一般情况下, 每个 Sentinel 会以每10 秒一次的频率向它已知的所有主服务器和从服务器发送 INFO 命令。 当一个主服务器被 Sentinel 标记为客观下线时, Sentinel 向下线主服务器的所有从服务器发送 INFO 命令的频率会从 10 秒一次改为每秒一次。
6. 当没有足够数量的 Sentinel 同意主服务器已经下线, 主服务器的客观下线状态就会被移除。 当主服务器重新向 Sentinel 的 PING 命令返回有效回复时, 主服务器的主管下线状态就会被移除。
1.4服务日志说明
Sentinel服务启动后会打印一些相关日志信息,以下是相关日志特殊字符说明:
+reset-master <instance details> :主服务器已被重置。
+slave <instance details> :一个新的从服务器已经被 Sentinel 识别并关联。
+failover-state-reconf-slaves <instancedetails> :故障转移状态切换到了reconf-slaves 状态。
+failover-detected <instance details>:另一个 Sentinel 开始了一次故障转移操作,或者一个从服务器转换成了主服务器。
+slave-reconf-sent <instance details>:领头(leader)的 Sentinel 向实例发送了 SLAVEOF 命令,为实例设置新的主服务器。
+slave-reconf-inprog <instancedetails> :实例正在将自己设置为指定主服务器的从服务器,但相应的同步过程仍未完成。
+slave-reconf-done <instance details>:从服务器已经成功完成对新主服务器的同步。
-dup-sentinel <instance details> :对给定主服务器进行监视的一个或多个 Sentinel 已经因为重复出现而被移除 —— 当 Sentinel 实例重启的时候,就会出现这种情况。
+sentinel <instance details> :一个监视给定主服务器的新 Sentinel 已经被识别并添加。
+sdown <instance details> :给定的实例现在处于主观下线状态。
-sdown <instance details> :给定的实例已经不再处于主观下线状态。
+odown <instance details> :给定的实例现在处于客观下线状态。
-odown <instance details> :给定的实例已经不再处于客观下线状态。
+new-epoch <instance details> :当前的纪元(epoch)已经被更新。
+try-failover <instance details> :一个新的故障迁移操作正在执行中,等待被大多数 Sentinel 选中(waiting to be elected by themajority)。
+elected-leader <instance details> :赢得指定纪元的选举,可以进行故障迁移操作了。
+failover-state-select-slave <instancedetails> :故障转移操作现在处于select-slave 状态 —— Sentinel 正在寻找可以升级为主服务器的从服务器。
no-good-slave <instance details> :Sentinel 操作未能找到适合进行升级的从服务器。Sentinel 会在一段时间之后再次尝试寻找合适的从服务器来进行升级,又或者直接放弃执行故障转移操作。
selected-slave <instance details> :Sentinel 顺利找到适合进行升级的从服务器。
failover-state-send-slaveof-noone<instance details> :Sentinel 正在将指定的从服务器升级为主服务器,等待升级功能完成。
failover-end-for-timeout <instancedetails> :故障转移因为超时而中止,不过最终所有从服务器都会开始复制新的主服务器(slaves will eventually be configured to replicate with the newmaster anyway)。
failover-end <instance details> :故障转移操作顺利完成。所有从服务器都开始复制新的主服务器了。
+switch-master <master name><oldip> <oldport> <newip> <newport> :配置变更,主服务器的 IP 和地址已经改变。 这是绝大多数外部用户都关心的信息。
+tilt :进入 tilt 模式。
-tilt :退出 tilt 模式。
1.5测试验证
可以对master-slave进行测试,将master关闭,此时slave会自动充当新的new-master;
当old-master恢复后,会充当new-master的slave,即:在这个过程中,sentinel.conf会被改写,改写为当前监控的主机master服务;
如下图测试所示:
Master服务停止:
Old-Master恢复服务:
以上这篇Redis Sentinel服务配置流程(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# redis
# sentinel
# 配置
# redis sentinel监控高可用集群实现的配置步骤
# 基于docker搭建redis-sentinel集群的方法示例
# 玩转Redis搭建集群之Sentinel详解
# 详解SpringBoot Redis自适应配置(Cluster Standalone Sentine
# Linux redis-Sentinel配置详解
# Redis Sentinel实现高可用配置的详细步骤
# sentinel支持的redis高可用集群配置详解
# 多个
# 就会
# 是一个
# 移除
# 你可以
# 客户端
# 给大家
# 设置为
# 指的是
# 或者其他
# 多少个
# 这是
# 这一
# 成了
# 在这个
# 将会
# 不需要
# 已被
# 适用于
# 会在
相关文章:
建站之星安装步骤有哪些常见问题?
建站之星导航菜单设置与功能模块配置全攻略
如何通过免费商城建站系统源码自定义网站主题与功能?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
用v-html解决Vue.js渲染中html标签不被解析的问题
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
建站主机选哪种环境更利于SEO优化?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
长沙做网站要多少钱,长沙国安网络怎么样?
建站之星好吗?新手能否轻松上手建站?
黑客入侵网站服务器的常见手法有哪些?
七夕网站制作视频,七夕大促活动怎么报名?
如何选择最佳自助建站系统?快速指南解析优劣
清除minerd进程的简单方法
建站之星图片链接生成指南:自助建站与智能设计教程
如何用PHP工具快速搭建高效网站?
网站代码制作软件有哪些,如何生成自己网站的代码?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
如何用已有域名快速搭建网站?
如何在企业微信快速生成手机电脑官网?
Python lxml的etree和ElementTree有什么区别
网站好制作吗知乎,网站开发好学吗?有什么技巧?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
网页设计与网站制作内容,怎样注册网站?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
名字制作网站免费,所有小说网站的名字?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
如何有效防御Web建站篡改攻击?
如何用好域名打造高点击率的自主建站?
C#怎么创建控制台应用 C# Console App项目创建方法
制作网站公司那家好,网络公司是做什么的?
如何挑选优质建站一级代理提升网站排名?
韩国服务器如何优化跨境访问实现高效连接?
家具网站制作软件,家具厂怎么跑业务?
建站主机无法访问?如何排查域名与服务器问题
建站之星官网登录失败?如何快速解决?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
测试制作网站有哪些,测试性取向的权威测试或者网站?
湖北网站制作公司有哪些,湖北清能集团官网?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
已有域名和空间,如何快速搭建网站?
如何在建站之星网店版论坛获取技术支持?
如何制作网站标识牌,动态网站如何制作(教程)?
深圳网站制作平台,深圳市做网站好的公司有哪些?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
高防服务器租用如何选择配置与防御等级?
文字头像制作网站推荐软件,醒图能自动配文字吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。