Redis集群中 Sentinel.conf 配置文件参数说明
1.sentinel实例之间的通讯端口
port 263792.sentinel需要监控的master信息:
sentinel monitor <mastername> <masterIP> <masterPort> <quorum>
<quorum>应该小于集群中slave的个数,只有当至少<quorum>个sentinel实例提交"master失效" ,才会认为master为O_DWON("客观"失效)
sentinel monitor master 127.0.0.1 6379 2
3.设置认证密码
sentinel auth-pass def_master 012_345^678-90
4.master被当前sentinel实例认定为“失效”的间隔时间。默认为30秒
sentinel down-after-milliseconds <mastername> <millseconds>
如果当前sentinel与master直接的通讯中,在指定时间内没有响应或者响应错误代码,那么当前sentinel就认为master失效(SDOWN,“主观”失效)
sentinel down-after-milliseconds def_master 30000
5.当前sentinel实例是否允许实施“failover”(故障转移)
no表示当前sentinel为“观察者”(只参与"投票".不参与实施failover),全局中至少有一个为yes
sentinel can-failover def_master yes
6.当新master产生时,同时进行slaveof到新master并进行“SYNC”的slave个数。
#默认为1,建议保持默认值
在salve执行salveof与同步时,将会终止客户端请求。此值较大,意味着“集群”终止客户端请求的时间总和和较大。
此值较小,意味着“集群”在故障转移期间,多个salve向客户端提供服务时仍然使用旧数据。
sentinel parallel-syncs def_master 1
7.failover过期时间
当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failover失败
sentinel failover-timeout def_master 900000
8.当failover时,可以指定一个“通知”脚本用来告知系统管理员,当前集群的情况。
脚本被允许执行的最大时间为60秒,如果超时,脚本将会被终止(KILL)
脚本执行的结果:
1 -> 稍后重试,最大重试次数为10;
2 -> 执行结束,无需重试
sentinel notification-script mymaster /var/redis/notify.sh
9.failover之后重配置客户端,执行脚本时会传递大量参数,请参考相关文档
sentinel client-reconfig-script <master-name> <script-path>