尝试群集属于同一个自动缩放组的两个节点时遇到问题。请注意,当我尝试手动群集它们时,一切都很完美。
我在同一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"}
]}
].
为什么第二个实例没有选择进入第一个实例集群?
我将不胜感激任何帮助!
答案 0 :(得分:3)
一旦我在两个节点中使用相同的.erlang cookie,问题就解决了。 我知道所有节点必须具有相同的.erlang cookie才能进入集群。 它记录在rabbitmq-cluster的 手动 设置中。 所以我想这也是为了让rabbitmq-autocluster插件集群节点的先决条件。