将 RabbitMQ 节点加入集群后,我们注意到集群中的其他节点将其标记为关闭,并发出警报:
root@rabbit2:# rabbitmqctl cluster_status
Cluster status of node 'rabbit@rabbit2' ...
[{nodes,[{disc,['rabbit@rabbit1','rabbit@rabbit2',
'rabbit@rabbit3']}]},
{running_nodes,['rabbit@rabbit1','rabbit@rabbit3','rabbit@rabbit2']},
{cluster_name,<<"[email protected]">>},
{partitions,[]},
{alarms,[{'rabbit@rabbitmq-1',[nodedown]},
{'rabbit@rabbitmq-3',[]},
{'rabbit@rabbitmq-2',[]}]}]
检查有问题的点头,没有问题:
root@rabbit1:# rabbitmqctl cluster_status
Cluster status of node 'rabbit@rabbitmq-1' ...
[{nodes,[{disc,['rabbit@rabbit1','rabbit@rabbit2',
'rabbit@rabbit3']}]},
{running_nodes,['rabbit@rabbit2','rabbit@rabbit3','rabbit@rabbit1']},
{cluster_name,<<"[email protected]">>},
{partitions,[]},
{alarms,[{'rabbit@rabbit2',[]},
{'rabbit@rabbit3',[]},
{'rabbit@rabbit1',[]}]}]
我们已尝试清除 rabbitmq 及其所有 erlang 组件的安装并重新启动,但节点仍然出现同样的问题。
答案1
我遇到了同样的问题。清除警报的唯一方法是从集群中删除节点并重新加入。但一段时间后警报再次出现,并且总是在同一个节点上。奇怪的是,即使设置了此警报,节点看起来也能正常工作。
我进行更深入的研究并可能找到了解决方案:
- 确保主机名 rabbit1、rabbit2 和 rabbit3 在所有集群主机上均可解析。
- 我已在一个群集主机(已报告为已关闭)上禁用了 ipv6。所有主机上的 ipv6 设置(启用/禁用)应相同。