微服务/容器|规模|活动巴士|邮件重复

时间:2018-10-16 20:34:02

标签: .net architecture event-handling rabbitmq microservices

我开始转向微服务架构 我的食谱是:https://github.com/dotnet-architecture/eShopOnContainers

这是一本很棒的书。但是我有问题,其中一个是:

假设我有2,3,5,10个Orders微服务实例/容器

以及3个Payment API实例/容器

现在,当用户单击“下订单”时,我将发送消息-“新OrderEvent”

并且订单微服务必须处理此消息..... 但是..我有8个微服务实例-我每个人都会处理此消息...

(我用兔子当公共汽车) 问题是:

  1. 如果我做错了什么?
  2. 如果兔子能解决这个问题(我不认为,但也许...)))
  3. 如果我需要编写保护每个句柄微服务内部的复杂逻辑代码,或者可以在总线内部进行魔术设置?

谢谢 (如果这个问题重复,很抱歉-我在互联网上找不到任何东西) (对不起,英语语法-我正在研究这个问题))

1 个答案:

答案 0 :(得分:1)

这取决于您如何配置实例队列和RabbitMQ交换。

如果对所有实例都使用一个队列,那么MQ将确保只有一个使用者会收到消息。

尽管每个实例可以有一个队列,但是应该将它们绑定在一个公共交换中。交换具有路由模式,该模式将确保只有一个,部分或所有实例队列将接收已发送的消息。