显示器|Redis高可用架构—哨兵(sentinel)机制详细介绍( 二 )


当redis master被标记为客观下线时 , 每个sentinel向其他slave节点发送info命令的频率由之前的10秒钟一次变为1秒钟一次 。 并且会通过raft算法在sentinel中选出一个leader , 由leader节点完成redis的故障转移工作 。
Redis sentinel选举redis-master的规则如何从众多slave节点中选出一个作为master节点呢?redis官方文档中是这样描述sentinel选择新master的规则的:

Redis sentinel配置在redis安装目录下 , 除了有redis本身的一个配置文件外 , 还有一个sentinel.conf , 该文件就是sentinel的配置文件 。 在该文件中 , 主要有以下几个配置:
● port:sentinel的端口 , 默认为26379;
● daemonize:是否后台启动 , yes表示以后台方式启动运行sentinel , 默认为no;
● logfile:sentinel日志文件存放路径;
● sentinel monitor :sentinel监控的master节点的名称、地址和端口号 , 最后一个quorums表示至少需要多少个sentinel判定master节点故障才进行故障转移 。 一般配置为sentinel数量/2+1 。
● sentinel down-after-milliseconds :sentinel向其他实例发送PING命令后到获得响应的超时时间 , 单位为毫秒;
● sentinel failover-timeout :sentinel在对master进行故障转移时的超时时间 , 单位毫秒;
● sentinel parallel-syncs :在执行故障转移时 ,最多可以有多少个从服务器同时对新的主服务器进行同步 , 这个数字越小 , 完成故障转移所需的时间就越长;
● sentinel auth-pass  :如果master节点设置了密码 , 则需要在这里配置master节点的密码 , 否则sentinel无法连接master进行监控 。
Redis sentinel启动基于上篇文章Redis高可用方案—主从(masterslave)架构?中我们搭建好的redis主从架构 , 要启动sentinel很简单 , 只需要在我们的三台服务器上分别执行命令:./bin/redis-sentinel sentinel.conf 。 如下图:

以上就是Redis Sentinel的主要工作内容和相关原理的介绍 。
【显示器|Redis高可用架构—哨兵(sentinel)机制详细介绍】点关注不迷路 , 跟我一起学技术!