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).
Detailed description is here. But please dont 100% rely on this. 3 things have 3 targets.
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.