MassTransit 命令消费者创建一个主题。这个对吗?

MassTransit command consumer creates a topic. Is this correct?

我是 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);
                        });
                    })
            };
        }

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

This is what I see in service bus explorer after sending a command

如果您不希望接收端点create/subscribe到主题,您可以指定:

e.SubscribeMessageTopics = false;

默认情况下,所有消息类型都在代理上配置为支持发布。将此设置为 false 将禁用配置。