【问题标题】:Redis Sentinel failover not happenning as excpectedRedis Sentinel 故障转移未按预期发生
【发布时间】:2020-11-09 14:45:18
【问题描述】:

我设置了 Redis 复制和 Redis Sentinel。
据我所知,一切都配置得很好。

这是主服务器上的 redis-sentinel.conf:

sentinel myid c975aac973e325412d2a70a5b9f6195fcb9e40e7
sentinel deny-scripts-reconfig yes
sentinel monitor redisoctcluster 10.97.7.140 6360 2
sentinel down-after-milliseconds redisoctcluster 5000

# Generated by CONFIG REWRITE
port 26379
dir "/etc/redis"
protected-mode no
sentinel failover-timeout redisoctcluster 60000
sentinel config-epoch redisoctcluster 0
sentinel leader-epoch redisoctcluster 11
sentinel known-replica redisoctcluster 10.103.19.57 6360
sentinel known-sentinel redisoctcluster 10.103.19.57 26379 fd19cf80e9b23db1501d9bfcc01aaff711a7b44b

sentinel current-epoch 11

这是从机上的 redis-sentinel.conf:

sentinel myid fd19cf80e9b23db1501d9bfcc01aaff711a7b44b
sentinel deny-scripts-reconfig yes
#bind 0.0.0.0
sentinel monitor redisoctcluster 10.97.7.140 6360 2
sentinel down-after-milliseconds redisoctcluster 5000
logfile "/var/log/redis/redis-sentinel.log"
# Generated by CONFIG REWRITE
port 26379
dir "/etc/redis"
protected-mode no
sentinel failover-timeout redisoctcluster 60000
sentinel config-epoch redisoctcluster 0
sentinel leader-epoch redisoctcluster 11
sentinel known-replica redisoctcluster 10.103.19.57 6360
sentinel known-sentinel redisoctcluster 10.97.7.140 26379 c975aac973e325412d2a70a5b9f6195fcb9e40e7

sentinel current-epoch 11

据我所知,将 redis-cli 用于哨兵(在主从机上) - 一切都很好:

# redis-cli -p 26379 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=redisoctcluster,status=ok,address=10.97.7.140:6360,slaves=1,sentinels=2

在从站上运行 get-master-addr-by-name 表明它知道主站:

# redis-cli -p 26379 sentinel get-master-addr-by-name  redisoctcluster
1) "10.97.7.140"
2) "6360"

当我在主服务器上停止 Redis 时,我在哨兵日志中看到了这一点:

 # +odown master redisoctcluster 10.97.7.140 6360 #quorum 2/2
 # +new-epoch 10
 # +try-failover master redisoctcluster 10.97.7.140 6360
 # +vote-for-leader fd19cf80e9b23db1501d9bfcc01aaff711a7b44b 10
 # c975aac973e325412d2a70a5b9f6195fcb9e40e7 voted for fd19cf80e9b23db1501d9bfcc01aaff711a7b44b 10
 # +elected-leader master redisoctcluster 10.97.7.140 6360
 # +failover-state-select-slave master redisoctcluster 10.97.7.140 6360
 # -failover-abort-no-good-slave master redisoctcluster 10.97.7.140 6360
 # Next failover delay: I will not start a failover before Sun Nov  8 16:34:42 2020

阻止故障转移发生的配置有什么问题?

【问题讨论】:

  • 我现在在日志中看到它说从属服务器已关闭:# +sdown slave 10.103.19.57:6360 10.103.19.57 6360 @ redisoctcluster 10.97.7.140 6360 这解释了为什么故障转移不能发生......仍然不明白它说当一切看起来都正常时从属服务器已关闭

标签: redis


【解决方案1】:

必须将 redis.conf 文件和 redis-sentinel.conf 文件中的绑定参数更改为 0.0.0.0 才能解决问题: 绑定0.0.0.0

然后“sdown”通知都消失了,并且发生了故障转移。

【讨论】:

    猜你喜欢
    • 2015-09-18
    • 2017-11-15
    • 2014-10-12
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2021-02-27
    相关资源
    最近更新 更多