42

I need to decide between Azure Service Bus and RabbitMQ (Deployed on Azure) for an enterprise level application and my major use will be of topics (with durable storage). I see that service bus has more features as compared to RabbitMQ like Retries Count, TTL, sessions & transactions etc. But I am not sure which one is best for High availability, scalability, storage and throughput. Service bus has some limits on store size (max 5 GB for non-partitioned queue and 80 GB for partitioned queue) and throughput of 2000 msgs/sec/queue. What if I need more then these limits in case of service bus?

The limits of RabbitMQ is not clear as it depends on the cluster. If anyone can help me in deciding which one would be the best in my case?

Muhammad Faizan
  • 863
  • 1
  • 7
  • 16
  • 1
    I found a blog talking about the cost comparison between Azure Service Bus and RabbitMQ on Azure VMs, you could refer to it [here](http://www.mariuszwojcik.com/blog/Cost-comparison-between-Azure-Service-Bus-Queues-and-RabbitMQ). – Bruce Chen May 12 '17 at 06:15
  • 1
    I have seen it @Bruce-MSFT . Cost is not a factor. I am confused about the performance and scalability of service bus. – Muhammad Faizan May 12 '17 at 06:39
  • Why don't you consider Amazon SQS which you can scale out? You can connect SQS to SNS and use as a topic for your case. – gdenuf May 15 '17 at 11:10
  • 2
    I've been a long time RMQ user. I just started to use AMB and I'm not overly impressed with the performance. But in all fairness, I haven't given AMB enough time to compare. I found this article about AMB performance. https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements – code5 Jul 09 '17 at 03:21
  • 5
    If your other infrastructures are heavily depends on Azure , I would like to recommend Azure SB. If you are planing( any probability) going out of Azure you may use RabbitMQ. – Greatran Jul 28 '17 at 07:58
  • Costing may also be a consideration https://www.mariuszwojcik.com/cost-comparison-between-azure-service-bus-queues-and-rabbitmq/ – Amicable Dec 13 '19 at 12:08
  • If one wants developers to be able to have a local test environment, that is unfortunately [not available for Azure Service Bus](https://stackoverflow.com/questions/37033345/using-azure-service-bus-in-local). So that is one reason to choose something else like RabbitMQ – Stian Jørgensrud Jun 21 '23 at 13:21

1 Answers1

25

My 2 cents - RabbitMQ with Docker and Kubernetes as part of your application infrastructure gives you portability. That is you can decide to move your app to a different cloud provider more easily than if you use Azure message bus.

Dave
  • 658
  • 7
  • 9
  • 24
    This is not a comparison perse. Enterprises don't change cloud often. Question & answer don't match. – Vinayak Mishra Mar 21 '21 at 07:38
  • Actually you can use Azure Service Bus and stilll have the portability. The portability can come from the configuration. Using IaC tools like Terraform gives you the ability to replace the underlying service. – Daniel Kusy Aug 01 '22 at 17:55
  • 1
    Using a messaging framework like NServiceBus or MassTransit that supports both RabbitMQ and Azure Service Bus (among other choices) will give you a very good level of "portability" as well as the ability to unit test the various parts of your system without the underlying broker: https://docs.particular.net/transports/rabbitmq/ https://docs.particular.net/transports/azure-service-bus/ – Udi Dahan Oct 28 '22 at 13:30
  • misleading - Azure service bus is not limited to Azure - it can be used from on prem DC or other cloud providers – Greg Bala Jan 30 '23 at 18:17