RabbitMQ 只允许 "cluster" 中的一台服务器

RabbitMQ only allows one server in the "cluster"

目前我正在探索 RabbitMQ 的可能性。我正在尝试在虚拟机 (ubuntu14.04) 上集群 3 个 RabbitMQ 服务器,它们在 LAN 中相互连接。

我成功集群了 2 个 RabbitMQ 服务器。 (所以我的 .erlang.cookie 是正确的,/etc/hosts 是正确的,机器可以互相 ping 通,...)

服务器的配置文件相同。

我觉得很奇怪,当我尝试将第 3 个 RabbitMQ 服务器连接到集群时,它一直失败,直到我在(已经)集群的服务器上停止 rabbitmq-server 应用程序。

尝试添加第 3 个服务器时,我在日志文件中收到以下错误:

=ERROR REPORT==== 16-Apr-2015::00:45:43 ===
Mnesia(rabbit@auser): ** ERROR ** Mnesia on rabbit@auser could not connect to node(s) [rabbit@virtual]

rabbit@virtual 是添加到集群中的第二台服务器。所以看起来我只能建桥而不是集群。我测试了当前的桥接连接,它运行良好。我做错了什么?

RabbitMQ 服务器的配置文件如下:

[{rabbit,        [{tcp_listeners,    [5672]}]},
 {rabbitmq_mqtt, [{default_user,     <<"guest">>},
              {default_pass,     <<"guest">>},
              {allow_anonymous,  true},
              {vhost,            <<"/">>},
              {exchange,         <<"MQTT">>},
              {subscription_ttl, 1800000},
              {prefetch,         10},
              {ssl_listeners,    []},
              %% Default MQTT with TLS port is 8883
              %% {ssl_listeners,    [8883]}
              {tcp_listeners,    [1883]},
              {tcp_listen_options, [binary,
                                    {packet,    raw},
                                    {reuseaddr, true},
                                    {backlog,   128},
                                    {nodelay,   true}]}]}
].

原来你不应该克隆机器而只更改主机名。如果要搭建RabbitMQ集群使用3台纯独立的机器。