我开始转向微服务架构 我的食谱是:https://github.com/dotnet-architecture/eShopOnContainers
这是一本很棒的书。但是我有问题,其中一个是:
假设我有2,3,5,10个Orders微服务实例/容器
以及3个Payment API实例/容器
现在,当用户单击“下订单”时,我将发送消息-“新OrderEvent”
并且订单微服务必须处理此消息..... 但是..我有8个微服务实例-我每个人都会处理此消息...
(我用兔子当公共汽车) 问题是:
谢谢 (如果这个问题重复,很抱歉-我在互联网上找不到任何东西) (对不起,英语语法-我正在研究这个问题))
答案 0 :(得分:1)
这取决于您如何配置实例队列和RabbitMQ交换。
如果对所有实例都使用一个队列,那么MQ将确保只有一个使用者会收到消息。
尽管每个实例可以有一个队列,但是应该将它们绑定在一个公共交换中。交换具有路由模式,该模式将确保只有一个,部分或所有实例队列将接收已发送的消息。