MassTransit 命令使用者创建一个主题。它是否正确?

Dan*_*iel 2 masstransit azureservicebus azure-servicebus-queues

我是 Azure 服务总线和 MassTransit 的新手,我正在尝试向队列发送一个简单的命令,然后让使用者使用该命令。我可以成功发送消息,然后由我的消费者使用,但是我注意到还创建了相应的主题。我对此有些天真的理解是,主题只需要用于事件发布和订阅。

这就是设置我的 IBus 实例的内容,其中 IMessageBus 封装了 MassTransit.IBus 实例

public static IMessageBus CreateBusAndRegisterQueueConsumer<T>(string servicePath, string queueName, IComponentContext autoFacContext)
            where T : class
        {
            return new MessageBus
            {
                Instance = Bus.Factory.CreateUsingAzureServiceBus(
                    sbc =>
                    {
                        var host = ConfigureServiceBus(servicePath, sbc);
                        sbc.ReceiveEndpoint(host, queueName, ec =>
                        {
                            ec.Consumer<CommandConsumer<T>>(autoFacContext);
                        });
                    })
            };
        }
Run Code Online (Sandbox Code Playgroud)

我观察到的行为是否正确,因为发送命令总是会在幕后创建主题,或者我是否错误地设置了我的服务总线?如果确实需要创建主题,这是由于 MassTransit 的工作方式所致,还是 Azure 服务总线的某些基本要求?

这是发送命令后我在服务总线资源管理器中看到的内容

Nul*_*ard 5

对于最新版本使用

e.ConfigureConsumeTopology = false;
Run Code Online (Sandbox Code Playgroud)