【发布时间】:2020-01-30 15:45:19
【问题描述】:
所以我正在考虑使用RabbitMQ 在我们组织中的所有不同应用程序之间发送消息。附图中基本上是我脑海中关于事情如何运作的画面。
所以消息进入交换器,并分成三个队列。
有效负载始终是 JSON 文本。
消费者是长期运行的 Windows 服务,其唯一的工作就是坐下来监听发往其特定应用程序的消息。当消息进入时,他们会查看标头以确定应如何解释此有效负载 JSON,以及哪个它应该被发送到的 REST 端点。例如,“当我看到 'WORK_ORDER_COMPLETE' 标头时,我将把它解析为 WorkOrderCompleteDto 并将其作为 POST 发送到位于 timelabor-api.mycompany.com 的 CompletedWorkOrder WebAPI 方法。如果 API 返回的不是 200,我拒绝消息并让rabbit处理它。如果我从API得到200返回,那么我将消息确认给rabbit。”
那么最终应用程序就是我们用于库存、计费等的内部业务线应用程序。然后这些应用程序负责执行各自的功能(减少库存、创建计费记录、yadda yadda。
p>这对正确使用 Rabbit 的方法有任何意义吗?
【问题讨论】:
-
是的。这通常是 RabbitMQ 的典型用法。注意如何配置交换,以便消息最终进入正确的队列。扇出会将垃圾邮件发送到所有队列。