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 将禁用配置。
我是 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 将禁用配置。