Rabbitmq MQTT和AWS ELB:如何使ELB忘记客户机以前连接到哪个节点?

Rabbitmq MQTT和AWS ELB:如何使ELB忘记客户机以前连接到哪个节点?,rabbitmq,mqtt,amazon-elb,Rabbitmq,Mqtt,Amazon Elb,我有一个由2个RabbitMQ节点组成的集群(每个节点都运行启用了MQTT插件的RabbitMQ版本3.6.10)和一个AWS经典负载平衡器。服务器和客户端交换MQTT消息 客户端(运行在移动设备上并使用Eclipse Paho客户端库的应用程序)连接到负载平衡器,负载平衡器以循环方式分发连接 当我关闭一个节点(比如Node1)时,所有连接到Node1的客户端都会收到一个回调,表明与代理的连接丢失。 这些客户端尝试重新连接,但连接尝试失败,表明无法访问代理。 从AWS控制台,我可以看到AWS E

我有一个由2个RabbitMQ节点组成的集群(每个节点都运行启用了MQTT插件的RabbitMQ版本3.6.10)和一个AWS经典负载平衡器。服务器和客户端交换MQTT消息

客户端(运行在移动设备上并使用Eclipse Paho客户端库的应用程序)连接到负载平衡器,负载平衡器以循环方式分发连接

当我关闭一个节点(比如Node1)时,所有连接到Node1的客户端都会收到一个回调,表明与代理的连接丢失。 这些客户端尝试重新连接,但连接尝试失败,表明无法访问代理。 从AWS控制台,我可以看到AWS ELB检测到Node1已关闭,并将其标记为“停止服务”。 来自新客户端的连接请求被路由到“InService”节点Node2;但是,来自先前连接到Node1的现有客户端的连接请求总是失败

ELB配置为180秒的空闲超时。在ELB中启用或禁用连接排水没有任何区别


是否有任何特定配置使ELB忘记现有客户端已连接到Node1并允许它们连接到Node2?

我尝试添加以下HA策略: rabbitmqctl设置\u策略ha mqtt“^mqtt”\'{“ha模式”:“精确”,“ha参数”:2,“ha同步模式”:“自动”}

有了此策略,就可以镜像为MQTT客户端创建的所有队列。现在,当Node1关闭时,来自现有客户端ID的连接尝试也会被路由到另一个活动节点


这让我想知道来自MQTT客户机的客户机ID与其到代理节点的连接之间的关系是什么?我认为只有在队列主节点关闭时保留和访问尚未确认的消息时,才需要镜像队列。但我看到客户甚至无法建立连接

@whicher_down_投票反对这个问题:如果你能就这个问题被否决的原因添加评论,那将非常有用。它可以帮助我避免在未来类似的否决票!