【发布时间】:2023-03-31 18:03:01
【问题描述】:
我有一个由 2 个 RabbitMQ 节点组成的集群(每个运行 3.6.10 版 RabbitMQ 并启用了 MQTT 插件)和一个 AWS 经典负载均衡器在它们前面。服务器和客户端交换 MQTT 消息。
客户端(在移动设备上运行并使用 Eclipse Paho 客户端库的应用程序)连接到负载平衡器,该负载平衡器以循环方式分配连接。
当我关闭一个节点(例如 Node1)时,所有连接到 Node1 的客户端都会收到一个回调,指示与代理的连接丢失。 这些客户端尝试重新连接,但连接尝试失败,表明代理无法访问。 从 AWS 控制台我可以看到 AWS ELB 检测到 Node1 已关闭并将其标记为“OutOfService”。 来自新客户端的连接请求被路由到“InService”节点Node2;但是,来自先前连接到 Node1 的现有客户端的连接请求总是失败!
ELB 配置了 180 秒的空闲超时。在 ELB 中启用或禁用连接耗尽没有任何区别。
是否有任何特定配置可以让 ELB忘记现有客户端已连接到 Node1 并允许它们连接到 Node2?
【问题讨论】:
-
@Whoever_down_voted_this_question:如果您可以添加评论说明为什么这个问题被否决,那将会很有用。它可以帮助我避免将来出现类似的反对票!
标签: rabbitmq mqtt amazon-elb