我有 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
Run Code Online (Sandbox Code Playgroud)
在 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
Run Code Online (Sandbox Code Playgroud)
我先启动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.
Run Code Online (Sandbox Code Playgroud)
rabbitmq 版本是 3.7.8
小智 6
在尝试集群之前,您是否在没有集群配置的情况下启动了节点?
在将集群形成设置添加到配置文件之前,我已经使用默认配置启动了单个对等点。通过在没有集群配置的情况下启动一个节点,它似乎形成了一个自己的集群,并且在进一步启动时只会联系最后一个已知集群(自己)。
来自https://www.rabbitmq.com/cluster-formation.html
对等发现的工作原理
当节点启动并检测到它没有先前初始化的数据库时,它会检查是否配置了对等发现机制。如果是这种情况,它将执行发现并尝试按顺序联系每个发现的对等点。最后,它将尝试加入第一个可访问对等方的集群。
您应该能够重置节点rabbitmqctl reset
(警告:这会从管理数据库中删除所有数据,例如配置的用户和虚拟主机,并删除所有持久消息以及集群信息。)然后使用集群配置。
归档时间: |
|
查看次数: |
1962 次 |
最近记录: |