Azure Service Bus Queue vs RabbitMQ

Azure Service Bus

Azure Service Bus is a cloud messaging service that is used to connect applications, devices, and services running in the cloud to other applications or services. As a result, it acts as a messaging backbone for applications available in the cloud or on any device.A reliable cloud messaging service (MaaS) *. It is a cloud messaging system for connecting applications and devices to public and private clouds. If one or more are offline, you can count on them if you need a reliable cloud messaging service between the app and the service.


Messaging mediator messaging broker. RabbitMQ provides a common platform for applications to send and receive messages and provides a secure place for messages to be received.

RabbitMQ is an open source general-purpose message broker that is designed for consistent, highly-available messaging scenarios (both synchronous and asynchronous).This solution uses multiple virtual machines to provision multiple nodes in a RabbitMQ Cluster to form a single logical broker.


Azure Service Bus Queue vs RabbitMQ


Microsoft Service Bus

  • Namespaces are used to create sandbox areas for messaging. The namespace also supports authentication and authorization for this sandbox.
  • The use of the SB “topic” object is very similar to the Rabbit “Exchange” object.
  • The concept of queues in both areas is the same.
  • In SB, a Topic object is conceptually equivalent to an Exchange object in RabbitMQ.
    SB subscriptions are made with key and value pairs of message properties. There is SQL-like syntax that supports many advanced features that support subscriptions.
  • SB has a type of filter called a correlation filter which provides the same functionality as the RabbitMQ routing key.
  • SB uses namespace entities to provide equivalent functionality to virtual hosts. These two elements create a queue of subject / subject / exchange type entities.
  • All queues are persistent with SQL Server used for persistence.
  • SB does not provide a memory queue only at this point. All messages are persistent.
  • Similar functionality can be obtained via the TTL property of the message, but it is not really the equivalent of a non-persistent queue.
  • Currently, there is no bridge in the stack between a server or a server that offers functionality similar to an excavator or a server and the cloud. I heard that the service bus team is working on an example that illustrates this functionality using the automatic transfer function.


  • Rabbit does not have the concept of a namespace, but has many similarities to a virtual rabbit host. Virtual hosts support similar security checks around virtual hosts, just as SB supports namespaces.
  • An exchange is a messaging object to which messages are sent.
  • The concept of queues in the two zones is the same.
  • In RabbitMQ, a subject is considered a special type of exchange and a specific type of subscription is applied to it. The subjects are exchanges which can use wildcards in the subscriptions according to the routing keys. Wildcards are relatively limited.Rabbit subscriptions are based on routing keys. Specify the routing key when placing a message in the exchange. Routing keys are used in different ways depending on the type of exchange you declare.
  • Routing keys are used to drive many Rabbit subscription activities. The routing key seems to be somewhat limited in that it cannot exceed 255 characters, but this can be an AMQP problem.
  • RabbitMQ includes the concept of virtual hosts within the RabbitMQ server, which allows you to use containers for exchanges and queues. Security settings can be configured within the virtual host, allowing email isolation and isolation.
  • When declaring a queue, you can easily keep the queue by setting the is persistent property to true.
  • When you declare a queue, you can easily make it non-persistent by setting the “is persistent” property to false. This means that the queue exists only in memory and cannot tolerate server failures.
  • Rabbit can support multiple federated messaging scenarios in several ways through multiple Rabbit plug-ins. There is an excavator outlet that sends all messages from a queue to another Rabbit broker exchange.