1、筹备工作

哨兵节点的搭建起码须要3个节点、在开始之前咱们须要先来搭建一个主从集群(一主两从)具体搭建步骤请查看https://segmentfault.com/a/1190000039261382

2、配置哨兵

哨兵的默认端口为26397、默认端口不能和其余机器指定的端口连通,只能在本地拜访。在这里咱们应用端口5000(能够依据本人的状况定)。

2.1 创立相应的文件夹
#寄存哨兵配置文件mkdir /etc/sentinel#存放数据文件mkdir -p /var/sentinel/5000#寄存日志文件mkdir -p /var/log/snetinelcd /var/log/snetineltuoch /var/log/snetinel/sentinel.log
2.2批改配置

sentinel.conf的默认配置在reids的装置目录曾经有咱们将它copy到/etc/sentinel下,做如下批改

cp /usr/local/redis-6.0.6/sentinel/sentinel.conf /ect/sentinel/5000.confvim 5000.confprot 5000bind 本机IP或者间接正文掉dir /var/sentinel/5000sentinel monitor mymaster <masterIP> <masterPort> 2sentinel down-after-milliseconds mymaster 30000sentinel failover-timeout mymaster 60000sentinel parallel-syncs mymaster 1logfile "/var/log/snetinel/sentinel.log"daemonize yes #如果redis master配置拜访口令须要如下配置sentinel auth-pass mymaster <password>

依照步骤咱们将其它两台哨兵都配置好。

3、启动哨兵

在三台服务器上别离启动哨兵节点

redis-sentinel /etc/sentinal/5000.conf

哨兵状态检测

redis-cli -h <节点IP> -p 5000sentinel master mymasterSENTINEL slaves mymasterSENTINEL sentinels mymasterSENTINEL get-master-addr-by-name mymaster

哨兵启动实现查看日志顺利完成。

⚠️ *这里有个问题咱们在做容灾的时候,redis集群配置了口令, 如果master节点挂了会进行故障转移从新选举master,然而当原来的master节点重启后会发现连贯不上以后master,因为在原master配置中没有加
masterauth password master节点明码的配置,给加上在重启就主动成slave节点退出到集群中。*

4、配置解释

sentinel monitor master-group-name hostname port quorumsentinel down-after-milliseconds mymaster 60000sentinel failover-timeout mymaster 180000sentinel parallel-syncs mymaster 1

quorum的解释如下:

(1)至多多少个哨兵要一致同意,master过程挂掉了,或者slave过程挂掉了,或者要启动一个故障转移操作

(2)quorum是用来辨认故障的,真正执行故障转移的时候,还是要在哨兵集群执行选举,选举一个哨兵过程进去执行故障转移操作

(3)假如有5个哨兵,quorum设置了2,那么如果5个哨兵中的2个都认为master挂掉了; 2个哨兵中的一个就会做一个选举,选举一个哨兵进去,执行故障转移; 如果5个哨兵中有3个哨兵都是运行的,那么故障转移就会被容许执行

down-after-milliseconds,超过多少毫秒跟一个redis实例断了连贯,哨兵就可能认为这个redis实例挂了

parallel-syncs,新的master别切换之后,同时有多少个slave被切换到去连贯新master,从新做同步,数字越低,破费的工夫越多

假如你的redis是1个master,4个slave

而后master宕机了,4个slave中有1个切换成了master,剩下3个slave就要挂到新的master下面去

这个时候,如果parallel-syncs是1,那么3个slave,一个一个地挂接到新的master下面去,1个挂接完,而且从新的master sync完数据之后,再挂接下一个

如果parallel-syncs是3,那么一次性就会把所有slave挂接到新的master下来

failover-timeout,执行故障转移的timeout超时时长