I'm looking for a queuing system which is fast and reliable and potentially can be spread across machines. Platform is Linux. Open source is preferable.
Both RabbitMQ and ZeroMQ look good but I have no experience with these or any other queuing systems. Can you point me in the right direction?
ZeroMQ and RabbitMQ both support an open messaging protocol called AMQP. The advantage to AMQP is that it’s designed to be a highly-robust and open alternative to the two commercial message queues out there (IBM and Tibco).
However, ZeroMQ doesn’t support message persistence across crashes reboots. That leaves us with RabbitMQ. (That being said if you don’t need persistence ZeroMQ is pretty darn interesting…incredibly low latency and flexible topologies).
I did a very basic evaluation of ZeroMQ, RabbitMQ, MSMQ and ActiveMQ a while back. http://mikehadlow.blogspot.com/2011/04/message-queue-shootout.html
Detailed description is here. But please dont 100% rely on this. 3 things have 3 targets.
Message queue evaluation notes
For a transaction based real-time fast data dissemination is good with ZeroMQ. High message reliability is best with RabbitMQ. Intermideate solution is ActiveMQ
We did an evaluation of various messaging approaches.
BoostASIO (sockets), ZeroMQ (lightweight framework) and OpenDDS (fully featured implementation of the OMG DDS spec.)
A paper describing the results can be found here. The results are not what you might expect.
Disclosure: poster is CEO of company that did the evaluation, and company's product is included in evaluation.