当前位置: 首页 > 知识库问答 >
问题:

Redis sentinel故障转移配置问题

爱繁
2023-03-14
     [root@ibs23redistest1 redis]# redis-cli -h 10.0.23.242 -p 26379
10.0.23.242:26379> sentinel masters
    1) "name"
    2) "redis-cluster"
    3) "ip"
    4) "10.0.23.242"
    5) "port"
    6) "6379"
    7) "runid"
    8) "07b11d5e7cd7aa6efeb6d40a2371f5533529e308"
    9) "flags"
   10) "master"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "1019"
   19) "last-ping-reply"
   20) "1019"
   21) "down-after-milliseconds"
   22) "5000"
   23) "info-refresh"
   24) "7950"
   25) "role-reported"
   26) "master"
   27) "role-reported-time"
   28) "258002"
   29) "config-epoch"
   30) "0"
   31) "num-slaves"
   32) "2"
   33) "num-other-sentinels"
   34) "2"
   35) "quorum"
   36) "2"
   37) "failover-timeout"
   38) "10000"
   39) "parallel-syncs"
   40) "1"
My configs are below

-------------- Master redis.conf --------------
bind 10.0.23.242
port 6379
dir .

-------------- Master sentinel.conf --------------
bind 10.0.23.242
#daemonize yes
port 26379
sentinel myid 68c0aadd673285fcfd87838e0ce4f14e90617371
sentinel monitor redis-cluster 10.0.23.242 6379 2
sentinel down-after-milliseconds redis-cluster 5000
sentinel failover-timeout redis-cluster 10000
sentinel config-epoch redis-cluster 0
#sentinel logfile /var/log/redis-sentinel.log
# Generated by CONFIG REWRITE
dir "/etc/redis"
sentinel leader-epoch redis-cluster 0
sentinel known-slave redis-cluster 10.0.23.244 6379
sentinel known-slave redis-cluster 10.0.23.243 6379
sentinel known-sentinel redis-cluster 10.0.23.243 26379 58051360cb3a05b3cc5b2b093041ce8d11555598
sentinel known-sentinel redis-cluster 10.0.23.244 26379 6056478d3dbd7a370e297c055ba66193a91f32ba
sentinel current-epoch 0
-------------- Slave 2 redis.conf --------------
bind 10.0.23.244
port 6379
dir .
slaveof 10.0.23.242 6379

-------------- Slave 2 sentinel.conf --------------
bind 10.0.23.244
port 26379
sentinel myid 6056478d3dbd7a370e297c055ba66193a91f32ba
sentinel monitor redis-cluster 10.0.23.244 6379 2
sentinel down-after-milliseconds redis-cluster 5000
sentinel failover-timeout redis-cluster 10000
sentinel config-epoch redis-cluster 0
# Generated by CONFIG REWRITE
dir "/root"
sentinel leader-epoch redis-cluster 0
sentinel known-sentinel redis-cluster 10.0.23.242 26379 68c0aadd673285fcfd87838e0ce4f14e90617371
sentinel current-epoch 0



-------------- Slave 1 redis.conf --------------
bind 10.0.23.243
port 6379
dir .
slaveof 10.0.23.242 6379

-------------- Slave 1 sentinel.conf --------------
bind 10.0.23.243
port 26379
sentinel myid 58051360cb3a05b3cc5b2b093041ce8d11555598
sentinel monitor redis-cluster 10.0.23.243 6379 2
sentinel down-after-milliseconds redis-cluster 5000
sentinel failover-timeout redis-cluster 10000
sentinel config-epoch redis-cluster 0
# Generated by CONFIG REWRITE
dir "/root"
sentinel leader-epoch redis-cluster 0
sentinel known-sentinel redis-cluster 10.0.23.242 26379 68c0aadd673285fcfd87838e0ce4f14e90617371
sentinel current-epoch 0

共有1个答案

黄俊誉
2023-03-14

你的从哨兵都应该监控主IP而不是他们自己的IP。

Sentinel monitor Redis-Cluster 10.0.23.242 6379 2用于两个从机。

您有sentinel.conf,用于从服务器监视自己的IP,因此我认为它们不会自动进行故障转移。

 类似资料:
  • 我试图在docker群中创建一个Redis集群。我正在使用bitnami-redis-docker图像创建容器。在阅读bitnami文档时,他们总是建议使用1个主节点,而不是阅读Redis文档,后者规定至少应该有3个主节点,这就是为什么我不知道哪个是正确的。假定所有bitnami slave默认为只读,如果我在一个swarm leader节点中只设置一个master,并且如果失败,我相信senti

  • 我注意到,当连接的Artemis节点宕机时,连接到节点2-4的客户机不会故障转移到其他3个可用的主节点,基本上不会发现其他节点。即使在原始节点恢复之后,客户端仍然无法建立连接。我从一个单独的堆栈溢出帖子中看到,不支持主到主故障转移。这是否意味着对于每个主节点,我也需要创建一个从节点来处理故障转移?这是否会导致两个实例点失败,而不是集群中有许多节点? 在一个单独的基本测试中,使用一个主从两个节点的集

  • 我们使用MQ作为传递消息的主要路径。这是我们的制度运作不可或缺的一部分。消息代理有时会失败,所有相关的队列也会随之失败。在camel中,有没有一种方法可以启动故障切换,并在其启动时恢复到主故障切换?

  • 我正在尝试用6台机器实现一个Redis集群。我有一个由六台机器组成的流浪集群: 运行redis服务器 我编辑了上述所有服务器的/etc/redis/redis.conf文件,添加了这个 然后我在六台机器中的一台上运行了这个程序; Redis集群已启动并运行。我通过在一台机器上设置值手动检查它显示在其他机器上。 我的问题是,当我关闭或停止任何一台主机上的redis server时,整个集群都会停止运

  • 我们有一个mongodb副本集,其中包含两个实例(127.0.0.1:27017-主要,127.0.0.1:27018-次要)和一个仲裁器(127.0.0.1:27019)。当我使用rs.steppdown(60)从主实例中退出时,它应该成为辅助实例,辅助实例应该成为主实例,所有写操作都应该在辅助实例中发生(退出后的主实例)。但在卸任后,我遇到了一个异常“无法将数据写入传输连接:远程主机强制关闭了

  • 对于复制,我们设置Server1作为主服务器,设置server2作为次服务器...一切正常。 期望:当server1停机时,次要的server2不会自动变成主要的。它仍然是次要的。server2也有可能自动成为主服务器。 情况2:MongoDB复制是否需要3台强制服务器,以便当server1宕机时,server2将自动成为主要服务器,server3将保持次要服务器。(这很管用)