我如何使用 MassTransit 由多个消费者订阅一个队列?

How I can subscribe to one queue by multiple consumers using MassTransit?

我正在使用 Azure 服务总线作为 MassTransit 的传输工具,我正在尝试将消息(命令)发送到队列:

var sendEndpoint = await busControl.GetSendEndpoint(sericeUri);
sendEndpoint.Send<ISimpleRequest>(new SimpleRequest(customerId));

我也尝试通过两个消费者连接到这个队列:

var _busControl = Bus.Factory.CreateUsingAzureServiceBus(cfg =>
            {
                var host =  cfg.Host("...", h =>
                {
                    h.OperationTimeout = TimeSpan.FromMinutes(1);
                });
                cfg.ReceiveEndpoint(host, "queueName",
                    e => { e.Consumer<RequestConsumer>(); });
                cfg.UseServiceBusMessageScheduler();
            });

第二个消费者使用相同的代码和相同的队列名称。 在我发送消息后,只有一个消费者得到响应。那么我如何配置它以与两个或更多消费者一起使用?

如果您想获得两份消息,每个消费者一份,您应该使用两个单独的队列和 Publish 消息。在这种情况下,MassTransit 会将其发送到主题,每个队列将收到主题转发的副本。