Существует ли JMS API / Клиент, который работает со всеми брокерами AMQP? - PullRequest
5 голосов
/ 31 января 2012

JMS является независимым от поставщика API для обмена сообщениями в пространстве Java. Миссия AMQP заключается в том, чтобы «стать стандартным протоколом взаимодействия между всеми промежуточными программами обмена сообщениями». Я ищу реализацию клиента JMS, которая совместима между поставщиками AMQP. В частности, было бы неплохо, если бы он мог общаться либо с RabbitMQ, либо с Qpid.

Ответы [ 3 ]

5 голосов
/ 04 февраля 2012

Jp-клиент Qpid (для избежания усилий тот же код, что и JMS-клиент OpenAMQ) кодирует JMS в AMQP 0-9-1. Я не могу говорить о качестве клиента, но это должно работать как для версии Qpid Java, так и для RabbitMQ.

Однако это не будет кодировка без потерь - в JMS есть несколько битов API, которые не переносятся в AMQP. Qpid может иметь прокладки для тех; RabbitMQ, по большому счету, нет. Я думаю конкретно о «нолокале» и селекторах. Возможно, есть и другие.

(На самом деле это / вид / делает селекторы, использующие обмен заголовками AMQP, но результаты могут отличаться от ожидаемых от JMS)

Предпринята попытка создать JMS-клиент, использующий AMQP 1.0. Но не существует ни выпусков Qpid, ни RabbitMQ, которые поддерживают AMQP 1.0, который, в конце концов, действительно отличается от 0-9-1 и других предыдущих версий.

1 голос
/ 09 мая 2015

Я недавно использовал клиентскую библиотеку Apache Qpid (qpid-client-0.32-bin.tar.gz) с RabbitMQ (AMQP 0-9-1), и она работала очень хорошо.

Если вы хотите подключиться к брокеру AMQP 1.0, вам следует использовать эту библиотеку Qpid (apache-qpid-jms-0.1.0-bin.tar.gz)

Обе библиотеки можно скачать здесь: http://qpid.apache.org/download.html

0 голосов
/ 31 января 2012

У самого Qpid есть JMS-клиент. Я никогда не использовал его, но он указан здесь под API клиента AMQP

http://qpid.apache.org/

...