我有2个rabbitmq节点。 它们的节点名称是:rabbit @ testhost1和rabbit @ testhost2 我希望他们可以自动群集。
在testhost1上
# cat /etc/rabbitmq/rabbitmq.conf
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@testhost1
cluster_formation.classic_config.nodes.2 = rabbit@testhost2
在testhost2上
# cat /etc/rabbitmq/rabbitmq.conf
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@testhost1
cluster_formation.classic_config.nodes.2 = rabbit@testhost2
我先启动rabbit @ testhost1,然后再启动rabbit @ testhost2。
第二个节点未加入第一个节点的集群。
虽然节点rabbit @ testhost1可以使用rabbitmqctl命令加入rabbit @ testhost2:rabbitmqctl join_cluster rabbit @ testhost2。 因此,两者之间的网络应该没有问题。
您能给我一些为什么不能合并群集的想法吗?配置不正确吗?
我打开了调试日志,与rabbit_peer_discovery_classic_config相关的信息很少:
2019-01-28 16:56:47.913 [info] <0.250.0> Peer discovery backend rabbit_peer_discovery_classic_config does not support registration, skipping registration.
rabbitmq版本是3.7.8
答案 0 :(得分:1)
在尝试集群之前,是否启动了没有集群配置的节点?
在将集群形成设置添加到配置文件之前,我已经使用默认配置启动了单个对等体。通过启动没有群集配置的节点,它似乎形成了它自己的群集,并且在进一步启动时只会联系最后一个已知的群集(自身)。
来自https://www.rabbitmq.com/cluster-formation.html
对等发现的工作方式
当节点启动并检测到它没有先前初始化的数据库时,它将检查是否配置了对等发现机制。在这种情况下,它将执行发现并尝试按顺序联系每个发现的对等方。最后,它将尝试加入第一个可达对等方的集群。
您应该能够使用rabbitmqctl reset
重置节点(警告:这将从管理数据库中删除所有数据,例如已配置的用户和虚拟主机,并删除所有持久性消息以及群集信息。)然后使用集群配置。