我有一个包含 2 个节点的集群,它们都没有使用 FQDN:rabbit@server1 和rabbit@server2。现在我正在添加第三个rabbitmq节点,它使用FQDN:[电子邮件受保护]。当我跑步时
rabbitmqctl join_cluster rabbit@server1
Clustering node '[email protected]' with rabbit@server1 ...
Error: unable to connect to nodes [rabbit@server1]: nodedown
DIAGNOSTICS
===========
attempted to contact: [rabbit@server1]
rabbit@server1:
* connected to epmd (port 4369) on server1
* epmd reports node 'rabbit' running on port 25672
* TCP connection succeeded but Erlang distribution failed
* suggestion: hostname mismatch?
* suggestion: is the cookie set correctly?
* suggestion: is the Erlang distribution using TLS?
current node details:
- node name: '[email protected]'
- home dir: /home/rabbitmq
- cookie hash: 6P4hzwN1u+rBCLZkYA2zUQ==
我已经使用了所有 cookie,所有 3 个服务器都是相同的。还有什么可能是错误的?
Erlang 不支持你想做的事情。
如果您至少使用一个 FQDN 名称,则它们都必须是 FQDN 名称,并且您必须将 “长名称” 与 RabbitMQ 一起使用。
在所有 RabbitMQ 节点上创建包含以下内容的
/etc/rabbitmq/rabbitmq-env.conf
文件:
USE_LONGNAME=true
创建文件后,确保每个节点名称的 FQDN 在 DNS 中解析。然后,重新启动所有 RabbitMQ 节点,您就应该完成设置了。
再次强调,您不能混合使用短名称和长名称 (FQDN)。
我希望您已经检查了实例的主集群节点端口的可用性,这些端口必须添加到集群中。如果一切正常,请尝试将 server1 主机名添加到 /etc/hosts 中。