cluster_formation.classic_config.nodes在rabbitmq

时间:2019-01-29 07:22:20

标签: rabbitmq config

我有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

1 个答案:

答案 0 :(得分:1)

在尝试集群之前,是否启动了没有集群配置的节点

在将集群形成设置添加到配置文件之前,我已经使用默认配置启动了单个对等体。通过启动没有群集配置的节点,它似乎形成了它自己的群集,并且在进一步启动时只会联系最后一个已知的群集(自身)。

来自https://www.rabbitmq.com/cluster-formation.html

  

对等发现的工作方式

     

当节点启动并检测到它没有先前初始化的数据库时,它将检查是否配置了对等发现机制。在这种情况下,它将执行发现并尝试按顺序联系每个发现的对等方。最后,它将尝试加入第一个可达对等方的集群。

您应该能够使用rabbitmqctl reset重置节点(警告:这将从管理数据库中删除所有数据,例如已配置的用户和虚拟主机,并删除所有持久性消息以及群集信息。)然后使用集群配置。