【问题标题】:Starting Redis cluster hangs when calling redis-trib调用 redis-trib 时启动 Redis 集群挂起
【发布时间】:2018-07-16 05:32:35
【问题描述】:

我尝试设置一个运行 docker 的 Redis 集群,但是当我尝试加入它们时它挂起。我的docker ps 给了我这个:

注意端口映射。

所有容器都有这个基本的 redis.conf 文件

port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

cluster-announce-ip 127.0.0.1
cluster-announce-port [7001, 7002, 7003, 7004, 7005 or 7006]
cluster-announce-bus-port [7101, 7102, 7103, 7104, 7105 or 7106]

唯一的变化是每个 docker 容器的 cluster-announce-portcluster-announce-bus-port。我希望你明白这一点。

我尝试使用./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 加入节点

它完美地发现它并询问是否应该接受配置:

但随后redis-trib 无限期挂起并显示“等待集群加入”。我可以通过docker logs r_1 看到 r_6,时代正在设定:

1:M 15 Jul 10:38:08.493 # configEpoch 通过 CLUSTER SET-CONFIG-EPOCH 设置为 1

所以redis-trib 确实调用了不同的节点。

我在任何地方都找不到关于集群公告变量的任何信息。这里有人知道怎么做吗?我认为我的问题在于这部分。

我使用的redis版本是4.0.10。

【问题讨论】:

    标签: docker redis


    【解决方案1】:

    好的,我想通了。我需要

    1. 将我的 cluster-announce-ip 设置为安装 docker 时创建的以太网适配器(打开终端并执行 ipconfig)
    2. 更新 redis-trib.rb 以反映此 IP
    3. 在创建 docker 镜像时映射 16379 端口

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 2018-11-27
      • 2018-05-03
      • 1970-01-01
      • 2020-05-06
      • 2015-08-17
      • 2019-08-11
      • 2019-12-01
      • 2020-07-01
      相关资源
      最近更新 更多