无法使用rabbitmq-autocluster插件对属于同一AWS自动缩放组的两个AWS实例进行集群

时间:2017-09-29 07:20:46

标签: amazon-web-services erlang rabbitmq cluster-computing autoscaling

尝试群集属于同一个自动缩放组的两个节点时遇到问题。请注意,当我尝试手动群集它们时,一切都很完美。

我在同一AWS自动扩展组中有两个AWS实例(Centos7),每个实例都安装了带有Erlang / OTP 20的RabbitMQ 3.6.10。我还安装并启用了rabbitmq-autocluster插件0.8.0(https://github.com/rabbitmq/rabbitmq-autocluster

这两个实例中的rabbitmq.config文件:

DECLARE @DataSource TABLE
(
    [ID] TINYINT
   ,[PID] TINYINT
   ,[VALUE] VARCHAR(250)
);

INSERT INTO @DataSource ([ID], [PID], [VALUE])
VALUES (1, 1, 'The quick brown fox')
      ,(2, 1, 'The quick brown fox is red')
      ,(3, 1, 'The quick brown fox is dead')
      --
      ,(4, 2, 'cat')
      ,(5, 2, 'cat is now dog')
      --
      ,(6, 3, 'cow is born');

WITH DataSource AS
(
    SELECT [PID]
          ,MAX([ID]) AS [value_to_get]
          ,MIN([ID]) AS [value_to_set]
    FROM @DataSource
    GROUP BY [PID]
)
UPDATE @DataSource  
SET [VALUE] = (SELECT VGet.[VALUE] FROM @DataSource VGet WHERE VSet.[value_to_get] = VGet.[ID])
FROM @DataSource DS1
INNER JOIN DataSource VSet
    ON DS1.[ID] = VSet.[value_to_set];

SELECT *
FROM @DataSource;

我在第一个实例中启动了第一个RMQ服务器(rabbit @ ip-172-31-20-113)。它按预期创建自己的单节点集群。

但是,当我在第二个实例(rabbit @ ip-172-31-16-139)中启动RMQ服务器时,虽然它识别出它们都属于同一个自动缩放组,但它不会与第一个实例聚集在一起。 这是来自第二个RMQ服务器的rabbitmq日志(rabbit @ ip-172-31-16-139):

[
 {rabbit, [
    {autocluster_log_level, info}
 ]},
 {autocluster, [
    {backend, aws},
    {aws_autoscaling, true},
    {aws_ec2_region, "eu-west-1"},
    {aws_access_key, "my_access_key"},
    {aws_secret_key, "my_secret_access_key"}
 ]}
].

为什么第二个实例没有选择进入第一个实例集群?

我将不胜感激任何帮助!

1 个答案:

答案 0 :(得分:3)

一旦我在两个节点中使用相同的.erlang cookie,问题就解决了。 我知道所有节点必须具有相同的.erlang cookie才能进入集群。 它记录在rabbitmq-cluster的 手动 设置中。 所以我想这也是为了让rabbitmq-autocluster插件集群节点的先决条件。