rabbitmq群集连接不起作用

时间:2014-09-14 14:45:49

标签: rabbitmq

我有一个带有2个节点的rabbitmq集群。节点A和B.节点A已启动并正在运行。每次我在节点A 上运行以下commadn时,我得到:

./rabbitmqctl cluster_status
Cluster status of node rabbit@A ...
[{nodes,[{disc,[rabbit@A,rabbit@B]}]},
 {running_nodes,[rabbit@A]},
 {partitions,[]}]
...done.

有趣的是,节点B 已启动并正在运行。每次我将它连接到另一个节点(A)以使其聚集时,它指出:

rabbitmqctl join_cluster rabbit@A
...done (already_member).

rabbitmqctl cluster_status
Cluster status of node rabbit@B ...
[{nodes,[{disc,[rabbit@B]}]}]
...done.

所以,某种程度上,节点A看不到B.并且是"已经成员"似乎没有从cluster_status命令中反映出来......

我可以检查两个节点上的队列,但它们是不同的。节点A有几十个队列,节点B没有,因此很明显集群没有建立。节点A和B都可以相互ping通,并且在rabbitmq的日志中没有报告任何内容

知道这不起作用吗?

2 个答案:

答案 0 :(得分:2)

如果是群集,我建议你去 Load Balancer 。确保您已为群集设置 HA政策

设置HA策略

$ rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

更多RabbitMQ Cluster

答案 1 :(得分:0)

我能够解决同样的问题。鉴于 NodeA 是父级,而 NodeB 正在尝试加入群集。

  1. 停止 NodeB 应用rabbitmqctl stop_app
  2. NodeA 上忘记群集节点rabbitmqctl forget_cluster_node rabbit@NodeB
  3. 重置 NodeB rabbitmqctl reset
  4. NodeB 加入群集rabbitmqctl join_cluster rabbit@NodeA
  5. 开始 NodeB rabbitmqctl start_app