首页 > 解决方案 > 如何为集群 MQTT 代理设置负载均衡器

问题描述

我正在开发一个实时移动消息应用程序的项目,该应用程序需要根据消息内容和用户的余额进行高级消息过滤,这意味着如果用户失去平衡或者他发送的内容违反了政策消息必须被阻止。

出于这个原因,我需要实现一些负载平衡解决方案来扫描已发布的消息,并且还可以根据上述规则确定是否应该阻止消息,因此我无法实现基本代理,因为我需要对每条消息应用特殊规则。

困难的部分: 移动应用程序需要接收订阅消息(也是连接确认),而不是最好通过负载均衡器(请参阅我的下一点)。

问题是我可以将订阅消息转发到移动应用程序的唯一方法是在负载均衡器中处理连接和订阅,这是灾难性的。我需要连接是透明的并且负载均衡器是无状态的。

我怎样才能做到这一点?(如果对我当前的设计有任何帮助的话,我目前的设计涉及带有用于负载平衡的 Spring Boot 和 VerneMQ 作为消息代理的 Java 组件)

标签: springload-balancingreal-timemqttmessagebroker

解决方案


尝试

移动应用 --> MQTT Broker --> 消息扫描/区块算法 --> MQTT Broker --> 订阅者。

您的移动应用程序应该具有在第一条消息后应用程序失去平衡时停止消息的智能。

所以 MQTT Broker 不应该直接在它的层将消息发送给它的订阅者。它应该发送处理后收到的消息。

不确定是否有人对此流程有现成的解决方案。但可行。


推荐阅读