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
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.
Qpid en sí tiene un cliente JMS. Nunca lo he usado, pero está aquí bajo el API de cliente AMQP
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. Uso de bibliotecas JMS existentes con un intermediario AMQP (RabbitMQ)
- 2. ¿Hay algún parámetro que pueda usar en Java que funcione con todos los bucles for-each?
- 3. ¿Hay una biblioteca Haskell IMAP que funcione con TLS?
- 4. ¿Hay una clase C++ STL que funcione como una tubería?
- 5. ¿Hay un especificador de formato que funcione con valores booleanos?
- 6. ¿Hay alguna forma de que jadclipse funcione con Eclipse 3.4?
- 7. ¿Hay algún generador de datos falso que funcione con Android?
- 8. git-svn: ¿hay alguna manera de hacer que funcione bien con los submódulos, o ignorarlos?
- 9. ¿Hay una versión de jquery UI que funcione con jQuery 1.4.2?
- 10. Red de intermediarios inundada con mensajes ActiveMQ.Advisory.TempQueue no consumidos
- 11. ¿Alguien puede explicar para qué sirven los intermediarios de mensajes?
- 12. ¿Hay alguna herramienta de refactorización que funcione en los archivos de soluciones?
- 13. ¿Hay alguna manera de hacer que un ExecutorService funcione recursivamente?
- 14. ¿Hay una colección que funcione como un diccionario sin los valores?
- 15. ¿Hay alguna biblioteca de reconocimiento facial C# que funcione?
- 16. Hacer que get_adjacent_post() funcione en los tipos de publicación personalizados
- 17. ¿Terracotta hace que JMS sea una capa innecesaria?
- 18. ¿Hay un equivalente de JMS en .NET?
- 19. ¿Cómo crear una clase que funcione con TransactionScope?
- 20. ¿Hay un analizador de rebajas compatible con Jekyll que funcione bien con mathjax?
- 21. ¿Hay alguna manera de que Asio funcione sin Boost?
- 22. ¿Existe una referencia que funcione con los patrones de comportamiento/percepción humanos?
- 23. ¿Hay una implementación de 'esperar' o una biblioteca de esperar que funcione en python3?
- 24. ¿Hay una biblioteca para iPhone que funcione con la codificación HMAC-SHA-1?
- 25. Configurar Erlang para que funcione con SSL
- 26. ¿Cómo hacer que HTML5 funcione con DOMDocument?
- 27. Implementación AMQP C++
- 28. AMQP + bibliotecas de Android
- 29. Obteniendo que DbUnit funcione con Hibernate Transaction
- 30. ¿Cómo hacer que textmate funcione bien con NFS?
La respuesta aceptada es anterior, ahora proporcionan un cliente compatible con 1.0. – r590