应用程序直接与消息队列通信,而不是与代理(前端服务)通信



我们正在为我们的产品设计一个新的架构。我们的产品并不完全是物联网——设备与客户端站点的单个盒子通信,而这个盒子与我们的服务器通信。

我们有两个选项:

  1. 盒子将直接发送消息到队列,该队列将被工作服务器拾取并在轮到它时处理。
  2. 该框将向前端服务器发送消息。服务器所做的就是将消息放入队列中供worker处理。

每种方法都有优缺点。直接与队列通信的第一个好处是,我们不需要花钱买机器来保存前端服务。

使用前端服务器的最大好处是它作为一个抽象层来对抗我们正在使用的队列技术——所以如果我们改变队列,我们不需要用新版本更新所有客户端来保持工作。我们考虑的另一个优点是它允许我们模拟同步调用。

当然,每一个都有很多优点和缺点。建议的工作方式是什么?最佳实践?安全?

需要考虑的一个方面是可伸缩性。为此,您需要支持负载平衡器。

虽然一些消息队列协议可以在负载平衡器上运行(参见负载平衡MQTT代理),但我建议在做出决定之前进行测试。如果你使用一个普通的REST,那么负载均衡器的兼容性就不是问题了。

其他需要检查的地方有:*防火墙兼容性:"盒子"是在不同的网络(如公司内部网)比服务器?在这种情况下,HTTP/REST是一个更安全的选择。

相关内容

  • 没有找到相关文章

最新更新