2012-01-30 15 views
5

JMS jest neutralnym dla dostawcy interfejsem API do przesyłania wiadomości w przestrzeni Java. Misją AMQP jest "stać się standardowym protokołem dla współdziałania wszystkich programów pośredniczących do przesyłania wiadomości". Szukam implementacji klienta JMS, która jest współdziałająca między dostawcami AMQP. W szczególności byłoby miło, gdyby mógł porozmawiać z RabbitMQ lub Qpid.Czy istnieje interfejs API/klient JMS, który współpracuje ze wszystkimi brokerami AMQP?

Odpowiedz

5

Klient Qpid JMS (który dla uniknięcia wysiłku, tak samo jak kod klienta OpenAMQ JMS) koduje JMS w AMQP 0-9-1. Nie mogę mówić o jakości klienta, ale powinno to działać zarówno w przypadku wydania Qpid Java, jak i RabbitMQ.

Nie będzie to jednak całkowicie bezstratne kodowanie - w JMS istnieją pewne elementy interfejsu API, które nie przenoszą się do AMQP. Qpid może mieć podkładki dla tych; RabbitMQ w zasadzie tego nie robi. Myślę konkretnie o "nolocal" i selektorach. Są prawdopodobnie inne.

(Faktycznie to/rodzaj/robi selektorów za pomocą AMQP wymiany nagłówka, ale wyniki mogą nie być czego można oczekiwać od JMS)

Jest próbą stworzenia klienta JMS, który używa AMQP 1.0. Ale nie ma żadnych wydań Qpid ani RabbitMQ, które obsługują AMQP 1.0, który jest przecież zupełnie innym protokołem niż 0-9-1 i inne wcześniejsze wersje.

1

Niedawno korzystałem z biblioteki klienta Apache Qpid (qpid-client-0.32-bin.tar.gz) z RabbitMQ (AMQP 0-9-1) i działało bardzo dobrze.

Jeśli chcesz połączyć się AMQP 1,0 Broker należy użyć tego Qpid lib (apache-qpid-JMS-0.1.0-bin.tar.gz)

Oba libs można pobrać stąd: http://qpid.apache.org/download.html

+1

Przyjęta odpowiedź jest stara, teraz oferuje klient zgodny z formatem 1,0. – r590

Powiązane problemy