2016-11-19 38 views
0

我使用Azure的服务总线运输的MassTransit我试图发送消息(命令)排队:如何使用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(); 
      }); 

第二个使用者具有相同队列名称的相同代码。 我发送消息后,只有一个消费者得到回应。那么我如何配置这个功能以与两个或更多的消费者一起工作呢?

+1

你最好使用这个主题和订阅。在主题中发布一条消息,并且多个订阅者可以订阅它。 – Aravind

回答

2

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

相关问题