web-dev-qa-db-ja.com

なぜQueueClientとMessageFactoryを使用するのですか?

Azure Service Busでは、QueueClientMessageFactoryを使用してブローカーメッセージを送信できます。なぜどちらか一方を使いたいのか知りたいのですが。

15
Mitul

Azure Service Busは、メッセージを送受信するためのさまざまな方法を提供します。

  • QueueClientを使用して、キューとの間でメッセージを送受信できます。
  • TopicClientを使用して、トピックにメッセージを送信できます
  • また、SubscriptionClientを使用して、サブスクリプションからメッセージを受信できます。

MessageSenderMessageReceiverを使用して、エンティティタイプが不変の送信者と受信者を作成します。

var factory = MessagingFactory.CreateFromConnectionString("MyConnectionString");
  • MessageSenderは、トピックまたはキューの両方にメッセージを送信できます。

    var sender = factory.CreateMessageSender("Queue ou topic path");
    
  • MessageReceiver caは、キューとサブスクリプションの両方からメッセージを受信します。

    var receiver = factory.CreateMessageReceiver("Queue ou subscription path");
    

これらの抽象化により、サービスバスエンティティのパスを変更するだけで(これは構成ファイルにある可能性があります)、コードを変更する必要がないため、キューからトピックに、またはその逆に切り替える必要がある場合に、柔軟性が高まります。 QueueClientTopicClientSubscriptionClientを使用して、キューからトピックに移動する場合は、コードを変更する必要があります。

したがって、Azure ServiceBusキュートピック/サブスクリプションとの間でメッセージを送受信する必要がある場合は、常にMessageReceiver/MessageSenderを使用することをお勧めします。

注:これは、実装が異なるEventhubには適用されません。

17
Thomas