【问题标题】:MassTransit Multiple Consumers All Receive Same Message in different name spaces?MassTransit 多个消费者都在不同的名称空间中收到相同的消息?
【发布时间】:2020-09-01 14:09:06
【问题描述】:
Environment:
 Three Projects (one publisher and three subscribers):
   consoleConsumer1
   consoleConsumer2
   consolePublisher1

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

_publishEndPoint.Publish<ManagerCreated>()

我还有另外两个项目,肯定有两个不同的命名空间,它们意外地具有相同的消费者名称来处理 ManagerCreated 事件,所以通常我已经添加了这个消费者

    mt.AddConsumer<ManagerChangedIntegrationEventHandler>();

我希望 masstransit 会创建两个类似这样的名称的扇出交换和队列

consoleConsumer1:ManagerChangedIntegrationEventHandler
and
consoleConsumer2:ManagerChangedIntegrationEventHandler

但它只创建一个名为:

ManagerChangedIntegrationEventHandler

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

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

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

【问题讨论】:

    标签: .net-core masstransit


    【解决方案1】:

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

    【讨论】:

    • 非常感谢,目前最好的方法是什么?什么是干净的方式?
    • 现在?您可以复制该提交中的代码,以便在您的项目中拥有自己的端点名称格式化程序。
    • 再次感谢您,如果能在 twitch live coding 上看到最佳模式和实践会很高兴
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    相关资源
    最近更新 更多