Originally posted on: http://geekswithblogs.net/BizTalkUnleashed/archive/2016/10/17/rabbitmq-vs-msmq-high-level-differences.aspx
RabbitMQ
MSMQ
- Centralized queuing.
- Decentralized queuing.
- Multiplatform (Linux, Windows, Mac, etc)
- Windows only
- Standard based (AMQP)
- No standard
Centralized vs Decentralized:
- A message broker like RabbitMQ is a centralized message broker where messages are stored on a central or a clustered server and client/subscriber does pubsub from this central server.
- MSMQ is decentralized and each machine has its own queue. Client can send messages to a particular queue and the subscriber can retrieve the message from that particular queue.
Multiplatform vs Windows only:
- RabbitMQ is multiplatform message broker so clients from any platform can read/write messages to/from RabbitMQ. It also has client libraries written in .NET, Java, Erlang, Ruby, Python etc. Integration is easy.
- MSMQ is a windows machine only messaging system.
Standards vs No Standards:
- RabbitMQ follows one of the standard called AMQP (Advanced Messaging Queuing Protocol). If you have multiple platform taking with each other than RabbitMQ is a better option.
- MSMQ uses its own proprietary messaging format. If you have a use case of windows machine talking with windows machine than MSMQ can suffice that use case.