如何将新的rabbitmq节点与当前的cluser同步



目前有一个由3个rabbitmq节点组成的集群,每个节点都在不同的aws zone中。我已经能够将它们聚类并证明这是有效的。

我遇到的挑战是使用自动缩放并自动将新节点连接到集群。据我所知,所有其他节点必须了解彼此,并在/etc/hosts文件中拥有对方的IP。

是否有一种方法可以只搜索集群名称并告诉节点连接?

我试过在elb后面设置节点,并将它们指向elb而不是IP;然而,这并没有奏效。

对于任何正在尝试这个的人,我所做的工作是安装aw -cli。在此之后,我编写了一个脚本,根据我拥有的三个不同的elb(每个节点一个)修改/etc/hosts文件

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

aws elb describe-instance-health --load-balancer-name <NAME OF YOUR 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文件。

希望对大家有所帮助

最新更新