MassTransit多个消费者都在不同的名称空间中收到相同的消息


Environment:
Three Projects (one publisher and three subscribers):
consoleConsumer1
consoleConsumer2
consolePublisher1

发布者通过consolePublisher1命名空间中的publishendpoint发送消息

_publishEndPoint.Publish<ManagerCreated>()

我还有另外两个项目,当然有两个不同的名称空间,它们意外地具有相同的使用者名称来处理ManagerCreated Event,所以通常我添加了这个使用者

mt.AddConsumer<ManagerChangedIntegrationEventHandler>();

我预计masstrait会创建两个扇出交换机和队列,它们的名称类似于

consoleConsumer1:ManagerChangedIntegrationEventHandler
and
consoleConsumer2:ManagerChangedIntegrationEventHandler

但它只创建了一个名为的扇出交换机

ManagerChangedIntegrationEventHandler

这两个消费者竞争消费消息。我知道我可以创建队列端点,这样交换机就可以将消息发布到两个不同的队列中,但有什么方法可以按照惯例实现这一点吗?

为什么项目名称或命名空间不应该影响交换和队列名称?

在消费者注册中使用名称空间的最佳方式是什么?

已经为此创建了一个问题,在下一个版本中将提供使用任何端点名称格式化程序包含命名空间的功能。

相关内容

最新更新