In Azure Service Bus, you can send a brokered message using QueueClient
and MessageFactory
. I would like to know why would you want to use one over the other.
Azure Service Bus provides different way to send/receive messages.
QueueClient
to send and receive message to/from a queue.TopicClient
to send message to a topicSubscriptionClient
to receive message from a subscription.Using MessageSender
and MessageReceiver
, you create sender and receiver that are entity type invariant:
var factory = MessagingFactory.CreateFromConnectionString("MyConnectionString");
A MessageSender
can send messages to both topic or queue:
var sender = factory.CreateMessageSender("Queue ou topic path");
A MessageReceiver
ca receive messages from both queue and subscription:
var receiver = factory.CreateMessageReceiver("Queue ou subscription path");
Theses abstractions can give you more flexibility if you need to switch from a queue to a topic or vice versa because you just need to change the path of the service bus entity (This could be in your configuration file) so no code change needed. Using QueueClient
, TopicClient
, SubscriptionClient
, you'll have to change your code if you want to move from a queue to a topic.
So my advice is to always use a MessageReceiver
/MessageSender
when you have to send/receive message from/to a an Azure ServiceBus queue topic/subscription.
NOTE: This does not apply for Eventhub which has a different implementation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With