2016-08-28 35 views
5

W usłudze Azure Service Bus można wysłać wyrzuconą wiadomość za pomocą QueueClient i MessageFactory. Chciałbym wiedzieć, dlaczego chciałbyś użyć jednego z nich.QueueClient vs MessageFactory

Odpowiedz

7

Usługa Azure Service Bus udostępnia inny sposób wysyłania/odbierania wiadomości.

  • Możesz użyć QueueClient, aby wysyłać i odbierać wiadomości do/z kolejki.
  • Możesz użyć TopicClient, aby wysłać wiadomość do tematu
  • Możesz też użyć SubscriptionClient, aby odebrać wiadomość z subskrypcji.

Korzystanie MessageSender i MessageReceiver można utworzyć nadajnika i odbiornika, które są typu jednostki niezmienny:

var factory = MessagingFactory.CreateFromConnectionString("MyConnectionString"); 
  • MessageSender można wysyłać wiadomości do zarówno tematu lub kolejki:

    var sender = factory.CreateMessageSender("Queue ou topic path"); 
    
  • A MessageReceiver ca otrzymywać wiadomości zarówno z kolejki i subskrypcji:

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

Tezy abstrakcje może dać większą elastyczność, jeśli chcesz, aby przełączyć się z kolejki do tematu lub odwrotnie, bo po prostu trzeba zmienić ścieżkę podmiotu Autobus wahadłowy (To może być w plik konfiguracyjny), więc nie trzeba zmieniać kodu. Jeśli chcesz przenieść się z kolejki do tematu, musisz zmienić kod.

Moja rada jest taka, aby zawsze używać MessageReceiver/MessageSender, kiedy trzeba wysyłać/odbierać wiadomości z/do tematu/subskrypcji kolejki Azure ServiceBus.

UWAGA: Nie dotyczy to Eventhub, który ma inną implementację.

+0

Jedna uwaga na temat MessagingFactory - nie jest używana do abstrakcyjnych typów wiadomości. MessagingFactory służy do tworzenia zarówno klientów specyficznych dla jednostki, jak i nadawców/odbiorników komunikatów (podejście niezmiennicze typu jednostki). +1 przy rekomendacji używania nadawcy/odbiorcy wiadomości podczas mieszania typów i operacji jednostek. –

+0

@SeanFeldman, zaktualizowałem mój post, nie wiem, czy to sprawia, że ​​teraz czuję więcej ... dzięki !!! – Thomas

+0

Uwielbiam to! Dziękuję @Thomas. –