我们需要向客户提供实时消息,但他们的服务器位于代理服务器后面,我们无法初始化连接; webhook变体不起作用。
考虑到以下情况,提供实时消息的最佳方式是:
我想到了三个变种:
任何建议将不胜感激。谢谢!
答案 0 :(得分:0)
由于您似乎必须在未连接对等方时存储消息,因此该问题同样适用于任何其他解决方案:如果对等方未连接且消息正在排队,该怎么办?
RabbitMQ非常棒,如果你想要松耦合:将生产者和消费者双方分开。如果没有连接消费者,代理将为您存储消息。这可能会在一段时间后填满代理上的内存和/或磁盘空间 - 在这种情况下,RabbitMQ将关闭。
通常,RabbitMQ是基于消息传递的体系结构的一个很好的工具,如您所描述的那样:
所以我推荐它用于其他两个(这可能适用于小规模的应用程序,但是如果需求发生变化,您可能需要快速扩展它们。)
编辑:我遗漏的东西 - 如果传递所有邮件并不重要,您可以使用TTL配置队列(超时后将丢弃邮件)或使用限制(这会限制队列中的邮件数量,如果到达新消息将被丢弃)。