【发布时间】: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-port 和 cluster-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。
【问题讨论】: