【发布时间】:2020-12-17 21:38:47
【问题描述】:
考虑一个实时应用程序,其中 Web 客户端与某个实体 X 建立持久连接。
我们在这里可能的选择是:
- 连接到 Web 服务器,然后将消息发送到消息队列。
在这种情况下,实体 X 相当于某个 Web 服务器,然后将该消息转发到消息队列。
|=Backend=
(client) ----------|-(web server)-----------(messageq)------> process message
| ^--backchannel connection
- 直接连接到消息队列。
在这种情况下,Web 客户端直接连接到消息队列端点并推送消息。
|=Backend=
(client) ----------|-(messageq)------> process message
|
这里推荐的最佳做法是什么? 标准企业架构中的消息队列位于何处?此外,如果您知道最佳实践,请分享您是如何学习该信息的(哪些资源/书籍包含这些知识?)。谢谢。
【问题讨论】:
-
我怀疑正确的做法是选项 #2,否则,您将把您的客户端耦合到某个可能不可取的消息队列工具。
标签: rabbitmq message-queue scalability system-design