RabbitMQ-AWS EC2集群地狱
对不起,我应该被枪毙了,因为我不得不问这个问题,但在这个问题上浪费了一天——我觉得我已经读了所有的东西 我无法在分布在三个不同区域的EC2实例(3)上创建集群。主持人:RabbitMQ-AWS EC2集群地狱,rabbitmq,celery,Rabbitmq,Celery,对不起,我应该被枪毙了,因为我不得不问这个问题,但在这个问题上浪费了一天——我觉得我已经读了所有的东西 我无法在分布在三个不同区域的EC2实例(3)上创建集群。主持人: rabbit@ip-172-31-47-217 rabbit@ip-172-31-1-82 rabbit@ip-172-31-36-111 尝试创建群集之前的初始状态: ubuntu@ip-172-31-47-217:~$ sudo rabbitmqctl cluster_status Cluster status of no
rabbit@ip-172-31-47-217
rabbit@ip-172-31-1-82
rabbit@ip-172-31-36-111
尝试创建群集之前的初始状态:
ubuntu@ip-172-31-47-217:~$ sudo rabbitmqctl cluster_status
Cluster status of node 'rabbit@ip-172-31-47-217' ...
[{nodes,[{disc,['rabbit@ip-172-31-47-217']}]},
{running_nodes,['rabbit@ip-172-31-47-217']},
{partitions,[]}]
ubuntu@ip-172-31-36-111:~$ sudo rabbitmqctl cluster_status
Cluster status of node 'rabbit@ip-172-31-36-111' ...
[{nodes,[{disc,['rabbit@ip-172-31-36-111']}]},
{running_nodes,['rabbit@ip-172-31-36-111']},
{partitions,[]}]
ubuntu@ip-172-31-1-82:~$ sudo rabbitmqctl cluster_status
Cluster status of node 'rabbit@ip-172-31-1-82' ...
[{nodes,[{disc,['rabbit@ip-172-31-1-82']}]},
{running_nodes,['rabbit@ip-172-31-1-82']},
{partitions,[]}]
当我尝试从一台服务器检查另一台服务器的状态时:
sudo rabbitmqctl status -n rabbit@ip-172-31-1-82
Status of node 'rabbit@ip-172-31-1-82' ...
Error: unable to connect to node 'rabbit@ip-172-31-1-82': nodedown
nodes in question: ['rabbit@ip-172-31-1-82']
hosts, their running nodes and ports:
- unable to connect to epmd on ip-172-31-1-82: timeout (timed out)
current node details:
- node name: 'rabbitmqctl3835@ip-172-31-36-111'
- home dir: /var/lib/rabbitmq
- cookie hash: 0tsf/OyQZI7zobmv1Ia97w==
所有三台服务器都具有相同的erlang cookie哈希
我可以验证主机名设置是否正确:
host ip-172-31-36-111
ip-172-31-36-111.us-west-2.compute.internal has address 172.31.36.111
我知道端口是开放的:
netstat -plten | grep beam
因为我在这一点上打开了所有TCP和UDP作为测试,所以没有任何更改
最后,如果考虑到这些故障,这将表现出不同的行为:
sudo rabbitmqctl join_cluster --ram rabbit@ip-172-31-1-82
Clustering node 'rabbit@ip-172-31-47-217' with 'rabbit@ip-172-31-1-82' ...
Error: {cannot_discover_cluster,"The nodes provided are either offline or not running"}
请帮忙,这让你发疯。问题是他们在不同的地区(可能是在EC2经典版中-你没有提到你是否在使用VPC)。这意味着他们无法通过其专用IP进行通信(参见示例) 平172.31.36.111 例如,将从其他服务器之一失败。使用主机名ping甚至可能会在DNS查找中失败 你的选择是:
请注意,rabbitmq集群并不意味着要在广泛的地理区域上运行,因为它们在面对网络分区时不太可靠。请参见此处:您可以尝试使用sudorabbitmq服务器启动一个代理-分离并从那里获取if