我使用Azure Service Bus作为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();
});
第二个使用者具有相同队列名称的相同代码。 发送消息后,只有一个消费者获得响应。那么我如何将其配置为与两个或更多消费者合作?
答案 0 :(得分:2)
如果您想获得两个消息副本,每个消费者一个副本,您应该使用两个单独的队列并EmbeddedDocumentField
消息。在这种情况下,MassTransit会将其发送到主题,每个队列将收到从主题转发的副本。