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.