Redis Sentinel中的配置详解
Sentinel
alibaba/Sentinel: Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制、熔断降级组件,提供实时监控、限流、降级和系统保护功能,适用于微服务治理场景。
项目地址:https://gitcode.com/gh_mirrors/sentine/Sentinel
免费下载资源
·
一、配置样例
Sentinel节点中的配置如下,注意里面的注释。
port 26379
daemonize yes
protected-mode no
dir /opt/redis
logfile "26379.log"
sentinel monitor mymaster 10.10.11.146 6388 2
# 判定节点不可达的时间,单位是毫秒。
sentinel down-after-milliseconds mymaster 5000
# 主节点的密码配置
sentinel auth-pass mymaster jxlzsh
# 故障转移后,每次向新的主节点发起复制的从节点的个数。
sentinel parallel-syncs mymaster 1
# 故障转移的超时时间
sentinel failover-timeout mymaster 50000
# Generated by CONFIG REWRITE Sentinel 以下的配置都是动态写进去的配置
dir "/opt/redis/redis-sentinel-config"
# 配置密码
sentinel auth-pass mymaster jxlzsh
sentinel config-epoch mymaster 3
sentinel leader-epoch mymaster 0
# 发现了两个slave节点
sentinel known-replica mymaster 10.10.11.145 6388
sentinel known-replica mymaster 10.10.11.146 6388
# 发现了两个Sentinel节点
sentinel known-sentinel mymaster 10.10.11.147 26379 879a83a9b3f135b8ef7d6a265c0262c75af18fbf
sentinel known-sentinel mymaster 10.10.11.145 26379 7a7ad7033662ff66bf1f0f4a8c63c1e5b5c0d88b
sentinel current-epoch 3
二、parallel-syncs的意义
三、monitor命令
让Sentinel监控主节点的配置,也可通过命令执行:
sentinel monitor mymaster ip port quorum
mymaster:主节点的别名。
quorum:
- 判断主节点失败,至少要达到的票数。一般设置为Sentinel节点的一半加1。
- quorum还与Sentinel节点的领导者选举有关,至少要有max(quorum,num(sentinels/2 + 1))个Sentinel节点参与选举,选举出领导者Sentinel,从而完成故障转移。例如有5个Sentinel,quorum为4,那么需要4个在线Sentinel节点参与选举。
四、两个脚本的配置
故障转移期间,当一些警告级别的Sentinel事件发生,触发的脚本配置:
sentinel notification-script mymaster /opt/redis/scripts/notification.sh
故障转移结束后,会触发的脚本配置如下,将故障转移结果传递出来:
sentinel client-reconfig-script mymaster /opt/redis/scripts/notification.sh
注意:
- 脚本必须要有执行权限。
- 而且脚本必须包含shell脚本头。
- 脚本的最大执行时间不能超过60秒,否则脚本将被kill掉。
- 如果运维的Sentinel节点比较多,不建议脚本的形式,会给使部署比较麻烦。
五、动态配置
Sentinel节点也支持动态的设置参数:
sentinel set mymaster param value
支持的参数有:
- quorum
- down-after-milliseconds
- failover-timeout
- parallel-syncs
- notification-script
- client-reconfig-script
- auth-pass
sentinel set命令只对当前Sentinel节点有效。
sentinel set如果执行成功会立即刷新配置文件,不需要像Redis的配置文件那样,需要config rewrite来写盘。
六、部署建议
- Sentinel节点不应该部署在一台物理机器上。
- 部署至少三个且奇数个的Sentinel节点。
- 如果Sentinel节点集合监控的是同一个业务的多个主节点集合,可以使用一套Sentinel,否则部署多套Sentinel比较合适。
GitHub 加速计划 / sentine / Sentinel
22.24 K
7.98 K
下载
alibaba/Sentinel: Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制、熔断降级组件,提供实时监控、限流、降级和系统保护功能,适用于微服务治理场景。
最近提交(Master分支:2 个月前 )
195150bc
* fix issue 2485 which occur oom when using async servlet request.
* optimize imports
* 1. fix the same issue in the webmvc-v6x
2. improve based on review comments 2 个月前
b78b09d3
2 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)