兔子不会集中在ec2上

Tam*_*mpa 1 rabbitmq

我有服务器问题让兔子集群.

我在ec2上启动了两个节点.

在第一个启动的节点上,我这样做.

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

I boot another node.
sudo service rabbitmq-server stop
#Copy cookie from the first server booted
sudo su - -c 'echo -n "cookie" > /var/lib/rabbitmq/.erlang.cookie'
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl cluster rabbit@server1
Run Code Online (Sandbox Code Playgroud)

1)sever1正在运行2)需要打开哪些端口?我有22,4369,5672

sudo rabbitmqctl cluster rabbit@aws-rabbit-server-east-development-20121102162143
Clustering node 'rabbit@aws-rabbit-server-east-development-20121103033005' with ['rabbit@aws-rabbit-server-east-development-20121102162143'] ...
Error: {no_running_cluster_nodes,['rabbit@aws-rabbit-server-east-development-20121102162143'],
                                 ['rabbit@aws-rabbit-server-east-development-20121102162143']}
Run Code Online (Sandbox Code Playgroud)

那些文档可能会遗漏什么,或者我错过了什么?

小智 6

我在EC2上遇到了类似的问题,有两台Windows机器.我最终得到了它的工作,但我不确定我是否以正确的方式做到了,所以可能有更好的解决方案.

我发现的问题是两个节点在尝试集群时无法看到对方.每次启动Rabbit节点时,似乎都会动态分配一个端口号.

这显然使得很难知道在安全组中打开哪个端口以便解决这个问题,我限制了Rabbit在分配端口时选择的端口范围.我将此限制在每个节点上的1个端口范围内,因此我始终知道正在分配哪个端口.

我发现这样做的最简单方法是编辑sbin\rabbitmq-service.bat文件.

找到行-kernel inet_default_connect_options"[{nodelay,true}]"^

将以下两行添加到下面的文件中:

-kernel inet_dist_listen_min ##### ^ -kernel inet_dist_listen_max ##### ^

用您选择的端口号替换#####.

所以你现在应该打开以下端口:

5672 - RabbitMQ的监听端口

4369 - Erlang Port Mapper Daemon

##### - Erlang节点通过所选端口号进行通信

由于Erlang无法识别FQDN,因此您可能需要修改所有服务器上的hosts文件,以确保它们都能够将所有Erlang节点名称解析为IP地址,例如

123.123.123.111 NODE1

123.123.123.222 NODE2

完成后,您应该能够看到另一个节点.你可以通过从命令行调用以下命令来做到这一点(用你想看到的任何节点替换rabbit @ NODE2)

rabbitmqctl status -n rabbit @ NODE2

希望这会给你一些帮助,我不是专家,但发现这对我有用!