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

标签 azureservicebus masstransit 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);
                        });
                    })
            };
        }

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

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

最佳答案

对于最新版本,请使用

e.ConfigureConsumeTopology = false;

关于azureservicebus - MassTransit 命令使用者创建一个主题。它是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56275611/

相关文章:

c# - MassTransit Consumer在进行依赖注入(inject)时不消费消息

c# - MassTransit 如何处理 RabbitMQ 宕机

c# - 在不同的 Azure 服务总线队列中使用相同的消息 ID 会导致错误

Azure 服务总线消息传递异常

c# - 延迟消息并维护传递计数 Azure 服务总线

state-machine - 如何使用存储引擎持久保存 Saga 实例并避免竞争条件

azure - 具有服务总线的 Multi-Tenancy 系统

azure - 如何确保通过 Azure 服务总线队列接收所有消息?

azure - 如何动态更新很长的处理消息的锁定 - Azure.Messaging.ServiceBus;

Azure辅助角色+消息队列消费者数量