RabbitMQ vs MSMQ (High Level Differences)
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.
