我有一个带有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的日志中没有报告任何内容
知道这不起作用吗?
答案 0 :(得分:2)
如果是群集,我建议你去 Load Balancer 。确保您已为群集设置 HA政策。
设置HA策略
$ rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
答案 1 :(得分:0)
我能够解决同样的问题。鉴于 NodeA 是父级,而 NodeB 正在尝试加入群集。
rabbitmqctl stop_app
rabbitmqctl forget_cluster_node rabbit@NodeB
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@NodeA
rabbitmqctl start_app