2012-01-30 15 views
5

El JMS es la API neutral del proveedor para la mensajería en el espacio de Java. La misión de AMQP es "convertirse en el protocolo estándar para la interoperabilidad entre todos los middleware de mensajería". Estoy buscando una implementación de cliente JMS que sea interoperable entre los proveedores de AMQP. Específicamente, sería bueno si pudiera hablar con RabbitMQ o Qpid.¿Hay una API/cliente JMS que funcione con todos los intermediarios de AMQP?

Respuesta

5

El cliente Qpid JMS (que es, para la evitación de esfuerzo, el mismo código que el cliente OpenAMQ JMS) codifica JMS en AMQP 0-9-1. No puedo hablar por la calidad del cliente, pero eso debería funcionar tanto para la edición Java de Qpid como para RabbitMQ.

No será una codificación totalmente sin pérdida, sin embargo, hay algunos bits de API en JMS que no se transfieren a AMQP. Qpid puede tener cuñas en su lugar para aquellos; RabbitMQ, en general, no lo hace. Estoy pensando específicamente en 'nolocal' y selectores. Probablemente haya otros.

(En realidad/tipo de/hace selectores utilizando el intercambio de cabecera AMQP, pero los resultados pueden no ser lo que esperas de JMS)

Hay un esfuerzo para crear un cliente JMS que utiliza AMQP 1.0. Pero no hay versiones de Qpid ni RabbitMQ compatibles con AMQP 1.0, que después de todo es realmente un protocolo completamente diferente a 0-9-1 y otras versiones anteriores.

1

He utilizado la biblioteca cliente Apache Qpid (qpid-client-0.32-bin.tar.gz) con RabbitMQ (AMQP 0-9-1) recientemente y funcionó muy bien.

Si desea conectarse a AMQP 1,0 corredor que debe utilizar este lib Qpid (Apache-Qpid-jms-0.1.0-bin.tar.gz)

Ambas bibliotecas se pueden descargar desde aquí: http://qpid.apache.org/download.html

+1

La respuesta aceptada es anterior, ahora proporcionan un cliente compatible con 1.0. – r590

Cuestiones relacionadas