使 MassTransit 适应现有的 Azure ServiceBus 拓扑

问题描述 投票:0回答:1

目前我正在研究是否以及如何使用 MassTransit 来取代 NServiceBus。除了似乎可行的线路兼容性(消息和标头的序列化)之外,我在拓扑(队列和主题的设置)方面遇到了一些困难。

例如,我有一个订单队列,它接收所有类型的订单相关命令,即CreateOrder、CancelOrder。当我尝试配置 MassTransit 时,我能够使用创建的订单队列

builder.Services.AddMassTransit(mt => {
  mt.AddConsumer<CreateOrderConsumer>();

  mt.UsingAzureServiceBus((context, cfg) => {
    cfg.Host("conn-string");

    cfg.ReceiveEndpoint("Orders", e => {
      e.ConfigureConsumers(context);
    });

  });
});

但是,这也会创建一个主题 CreateOrder,其中包含单个订阅“Orders”,它将所有消息转发到“Orders”队列。尽管这可行,但拥有一个主题是对现有拓扑的更改,并且拥有一个用于多对一通信的主题(例如发送命令而不是发布事件)对我来说似乎很奇怪。

如何将 MassTransit 配置为仅创建订单队列,而不创建 CreateOrder 主题,并使用 MassTransit 配置发送组件以直接发送到此队列(而不是将其发送到主题)?

azureservicebus masstransit
1个回答
0
投票

e.ConfigureConsumeTopology = false

文档

© www.soinside.com 2019 - 2024. All rights reserved.