是否有可与所有AMQP代理一起使用的JMS API/客户端?

是否有可与所有AMQP代理一起使用的JMS API/客户端?,jms,rabbitmq,amqp,qpid,Jms,Rabbitmq,Amqp,Qpid,JMS是Java空间中与供应商无关的消息传递API。AMQP的使命是“成为所有消息传递中间件之间互操作性的标准协议”。我正在寻找一个可在AMQP供应商之间互操作的JMS客户机实现。具体地说,如果它可以与RabbitMQ或Qpid对话,那就太好了。Qpid本身有一个JMS客户机。我从未使用过它,但它列在这里的AMQP客户端API下 Qpid JMS客户机(为了避免麻烦,与OpenAMQ JMS客户机的代码相同)在AMQP 0-9-1中编码JMS。我不能谈论客户机的质量,但这应该适用于Qpid Ja

JMS是Java空间中与供应商无关的消息传递API。AMQP的使命是“成为所有消息传递中间件之间互操作性的标准协议”。我正在寻找一个可在AMQP供应商之间互操作的JMS客户机实现。具体地说,如果它可以与RabbitMQ或Qpid对话,那就太好了。

Qpid本身有一个JMS客户机。我从未使用过它,但它列在这里的AMQP客户端API下

Qpid JMS客户机(为了避免麻烦,与OpenAMQ JMS客户机的代码相同)在AMQP 0-9-1中编码JMS。我不能谈论客户机的质量,但这应该适用于Qpid Java edition和RabbitMQ

然而,它不会是一种完全无损的编码——JMS中的一些API不会传递到AMQP。Qpid可为这些部件配备垫片;大体上,RabbitMQ没有。我特别想到“nolocal”和选择器。可能还有其他的

(实际上,使用AMQP头交换的选择器是/有点像/有点像选择器,但结果可能不是您从JMS中期望的结果)


我们努力创建一个使用AMQP1.0的JMS客户机。但是没有Qpid或RabbitMQ版本支持AMQP1.0,毕竟AMQP1.0与0-9-1和其他早期版本是完全不同的协议。

最近,我将ApacheQPID客户端库(Qpid-client-0.32-bin.tar.gz)与RabbitMQ(AMQP0-9-1)一起使用,效果非常好

如果您想连接到AMQP1.0代理,您应该使用这个Qpid库(apache-Qpid-jms-0.1.0-bin.tar.gz)

两个LIB都可以从以下位置下载:

公认的答案是旧的,现在他们提供了1.0兼容的客户端。