Amazon web services 如何将新rabbitmq节点与当前群集同步?

Amazon web services 如何将新rabbitmq节点与当前群集同步?,amazon-web-services,rabbitmq,load-balancing,autoscaling,Amazon Web Services,Rabbitmq,Load Balancing,Autoscaling,目前,有一个由3个rabbitmq节点组成的集群,每个节点位于不同的aws区域,而其他节点则不在其中。我已经能够对它们进行聚类,并证明它们是有效的 我遇到的挑战是使用自动缩放和自动将新节点连接到集群。据我所知,所有其他节点都必须相互了解,并在其/etc/hosts文件中包含其他节点的IP 有没有办法只搜索集群名称并告诉节点连接 我尝试在ELB后面设置节点,并将它们指向ELB而不是IP;然而,这并没有起作用 对于其他尝试此功能的人,我所做的工作就是安装。完成后,我编写了一个脚本,根据三个不同的el

目前,有一个由3个rabbitmq节点组成的集群,每个节点位于不同的aws区域,而其他节点则不在其中。我已经能够对它们进行聚类,并证明它们是有效的

我遇到的挑战是使用自动缩放和自动将新节点连接到集群。据我所知,所有其他节点都必须相互了解,并在其/etc/hosts文件中包含其他节点的IP

有没有办法只搜索集群名称并告诉节点连接


我尝试在ELB后面设置节点,并将它们指向ELB而不是IP;然而,这并没有起作用

对于其他尝试此功能的人,我所做的工作就是安装。完成后,我编写了一个脚本,根据三个不同的elb更改/etc/hosts文件,每个节点有一个elb

脚本首先通过运行以下命令找到elb后面的ec2实例

aws ec2 describe-instances --instance-ids <THE VALUE RETURNED FROM ABOVE> --query 'Reservations[*].Instances[*].PrivateIpAddress' --output text
aws elb描述实例运行状况-负载平衡器名称

然后,脚本通过运行以下命令获取elb后面的ec2的ip

aws ec2 describe-instances --instance-ids <THE VALUE RETURNED FROM ABOVE> --query 'Reservations[*].Instances[*].PrivateIpAddress' --output text
我们正在做的技巧是在一个脚本中运行它,其中它分别遍历每个elb,每个节点前面只有一个elb。这允许一个节点关闭,自动调用备份,让我们知道新的ip,而不必担心手动编辑文件

因此,我们只是对每一个文件进行运行,并告诉它将输出保存到/etc/hosts文件中


希望这对其他人有所帮助

如果您使用amazon VPC,您的目标更容易实现,而且我认为这更正确,因为您可以减少TCP开放端口,并且您的RMQ实例得到更大的保护。在您的情况下,您可以考虑使用amazon SQS向其他服务器广播新的ip,然后更改主机文件。@这似乎有点愚蠢,基本上是使用amazon mq向我们的mq发送消息