0mq is a great solution. But, as far as I know, it does not support persistent storage, while ocamlmq provides "strong durability guarantees".
AMQP is much heavier and offers persistence and more advanced routing (and a lot of unncessary cruft). In theory you could build something like RabbitMQ on top of ZMQ (I say 'in theory' because AMQP defines its own wire protocol which is incompatible with ZMQ). AMQP is also server-centric whereas you could use ZMQ in a more decentralized system.