5

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

4

3 回答 3

5

Qpid JMS 客户端(为了省力,代码与 OpenAMQ JMS 客户端相同)在 AMQP 0-9-1 中对 JMS 进行编码。我不能说客户端的质量,但这应该适用于 Qpid Java 版和 RabbitMQ。

然而,它不会是一个完全无损的编码——JMS 中有一些 API 位不会传递到 AMQP。Qpid 可能为这些设置了垫片;总的来说,RabbitMQ 没有。我正在特别考虑“nolocal”和选择器。可能还有其他人。

(实际上它 /kind of/ 使用 AMQP 标头交换进行选择器,但结果可能不是您对 JMS 的期望)

正在努力创建一个使用 AMQP 1.0 的 JMS 客户端。但是没有支持 AMQP 1.0 的 Qpid 或 RabbitMQ 版本,毕竟这与 0-9-1 和其他先前版本完全不同。

于 2012-02-04T13:20:30.070 回答
1

我最近将 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

于 2015-05-09T14:43:37.257 回答
0

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

http://qpid.apache.org/

于 2012-01-31T17:43:38.550 回答