Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Microsoft.ServiceBus.Messaging vs Microsoft.Azure.ServiceBus

Tags:

MS has recently introduced the Microsoft.Azure.ServiceBus namespace.
https://github.com/Azure/azure-service-bus/blob/master/samples/readme.md

It is geared for the new .net standard framework (as if MS doesn't have enough semi-redundant code bases)

My question is, how much better could it be in terms of performance?

I can say with confidence, that the Microsoft.ServiceBus.Messaging leaves lots to be desired, in particular when it comes to persistent receiving.

A very useful feature of the Microsoft.ServiceBus.Messaging , is the message pump, built on top of OnMessage() method.

The new library, doesn't have this, and needs to rebind event handlers on every receipt to keep pumping. Definitely a step backward .

Looking for feedback from anyone who has had experience with both and can compare..

like image 506
LastTribunal Avatar asked Aug 25 '17 01:08

LastTribunal


People also ask

What is Service Bus in Azure?

Azure Service Bus is a fully managed enterprise message broker with message queues and publish-subscribe topics (in a namespace). Service Bus is used to decouple applications and services from each other, providing the following benefits: Load-balancing work across competing workers.

Is Kafka same as Azure Service Bus?

The Kafka Connect Azure Service Bus connector is a multi-tenant cloud messaging service you can use to send information between applications and services. The Azure Service Bus Source connector reads data from a Azure Service Bus queue or topic and persists the data in a Kafka topic.

Is Azure Service Bus same as RabbitMQ?

Firstly, RabbitMQ is an open source message broker, that supports a wide range of protocols. Then, Azure Service Bus is a cloud based message broker from Microsoft. It supports fewer protocols but offers additional features such as automatic scalability and disaster recovery.

Is Azure Service Bus AMQP?

The Azure Service Bus cloud service uses the AMQP 1.0 as its primary means of communication.


1 Answers

To address your question, what .netstd library offers that was not in .netframework one:

  1. Open Source. The new library is fully open sourced. You can browse, step into (with the next release) without setting up symbols server, contribute, and simply review how things work.
  2. The new library is truly async as oppose to what the .netframework library was.
  3. Reduced amount of responsibilities and code size. For example, Message vs BrokeredMessage. Your data is no longer serialized by the client.
  4. AMQP by default and not SBMP.
  5. The new client targets .NET Standard and Full Framework.
  6. Certain client aspects redesigned to provide better options (OnMessage API to provide more failure context, plugins and extensibility, interfaces for easier testing).
  7. Fully tested.

Performance wise it should be on par with the old client if not better.

A very useful feature of the Microsoft.ServiceBus.Messaging , is the message pump, built on top of OnMessage() method.

You still have OnMessage API, though renamed to RegisterMessageHandler.

like image 83
Sean Feldman Avatar answered Oct 21 '22 07:10

Sean Feldman