gpt4 book ai didi

RabbitMQ Shovel 插件卡在 "starting"状态

转载 作者:行者123 更新时间:2023-12-03 06:32:22 26 4
gpt4 key购买 nike

RabbitMQ 启动正常,但 shovel 插件状态列为“正在启动”。

我正在使用以下rabbitmq.config:

每个代理都在单独的 AWS 实例上运行。远程服务器是windows 2008 server,本地服务器是Amazon Linux。

[{rabbitmq_shovel,
[{shovels,
[{scrape_request_shovel,
[{sources, [{broker,"amqp://test_user:test_password@localhost"}]},
{destinations, [{broker, "amqp://test_user:test_password@ec2-###-##-###-###.compute-1.amazonaws.com"}]},
{queue, <<"scp_request">>},
{ack_mode, on_confirm},
{publish_properties, [{delivery_mode, 2}]},
{publish_fields, [{exchange, <<"">>},
{routing_key, <<"scp_request">>}]},
{reconnect_delay, 5}
]}
]
}]
}].

运行以下命令:

sudo rabbitmqctl eval 'rabbit_shovel_status:status().'

返回:

[{scrape_request_shovel,starting,{{2012,7,11},{23,38,47}}}]

根据This question ,如果用户未在两个代理上正确设置,则可能会导致这种情况。不过,我已经仔细检查过我是否已通过两台计算机上的rabbitmqctl user_add 正确设置了用户——当然,甚至还尝试过使用不同的用户组。

我还在远程主机上运行了端口 5672 的 nmap 扫描,以验证该端口是否已启动并正在运行。

更新问题尚未解决,但这似乎是由于远程服务器的连接问题造成的。我在配置文件中将“reconnect_delay”更改为 0,以避免 shovel 无限地重试连接。强烈建议其他有此问题的人也这样做,因为它允许您从rabbit_shovel_status 中获取错误消息。就我而言,我收到以下错误:

[{scrape_request_shovel,
{terminated,
{{badmatch,{error,access_refused}},
[{rabbit_shovel_worker,make_conn_and_chan,1},
{rabbit_shovel_worker,handle_cast,2},
{gen_server2,handle_msg,2},
{proc_lib,init_p_do_apply,3}]}},
{{2012,7,12},{0,4,37}}}]

最佳答案

在这里回答我自己的问题,以防其他人遇到这个问题。此错误(如果出现此错误,还有超时错误 {{badmatch,{error,etimedout}}, )几乎可以肯定是两台计算机之间的通信问题,很可能是由于端口访问/防火墙设置造成的。

我在这里做了一些愚蠢的事情:

1) 我的远程 EC2 实例使用了错误的 DNS(天啊!真蠢——无法告诉你我在这个实例上用头撞墙花了多长时间……)。请记住,如果您没有与实例关联的弹性 IP,停止和启动实例会生成新的 DNS。

2) 我的远程实例是 Windows 服务器,我意识到您必须在 Windows 防火墙和 EC2 安全组中打开端口 5672 - 这里有两个重叠的访问控制级别,如果您的计算机是 EC2 上的 Windows 服务器,则在 EC2 管理控制台中打开端口是不够的,因为您还必须配置 Windows 服务器防火墙。

关于RabbitMQ Shovel 插件卡在 "starting"状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11443309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com