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
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ę.
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. –
@SeanFeldman, zaktualizowałem mój post, nie wiem, czy to sprawia, że teraz czuję więcej ... dzięki !!! – Thomas
Uwielbiam to! Dziękuję @Thomas. –