2016-11-19 5 views
0

私はMassTransitのトランスポートとしてAzureのサービスバスを使用していると私は、キューにメッセージ(コマンド)を送信しようとしています:MassTransitを使用して複数のコンシューマが1つのキューを購読する方法を教えてください。

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

私は2人の消費者がこのキューに接続しよう:

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(); 
      }); 

2番目のコンシューマの同じキュー名を持つ同じコード。 私はメッセージを送信した後、ただ1人の消費者が応答を得ます。だから私はこれを2人以上の消費者と一緒に使うように設定することができますか?

+1

あなたはこのためにトピックとサブスクリプションを使用する方がよいです。トピックに1つのメッセージを投稿し、複数のサブスクライバがサブスクライブすることができます。 – Aravind

答えて

2

メッセージの2つのコピーを取得する場合は、コンシューマごとに2つのキューを使用し、メッセージはPublishである必要があります。この場合、MassTransitはそれをトピックに送信し、各キューはトピックから転送されたコピーを受信します。

関連する問題