如何使用 JMS 和 AMQP 1.0 设置 RabbitMQ?

Posted

技术标签:

【中文标题】如何使用 JMS 和 AMQP 1.0 设置 RabbitMQ?【英文标题】:How do I setup RabbitMQ with JMS and AMQP 1.0? 【发布时间】:2021-08-18 15:41:57 【问题描述】:

我需要通过 AMQP 1.0 向 RabbitMQ 发送消息,并在 Spring Boot 中使用 @JmsListener 接收它们。我发现有两个特定的 RabbitMQ 插件添加了对 AMQP 1.0 和 JMS 的支持。

JMS 插件旨在与 RabbitMQ 的 JMS 客户端库一起使用,但在 AMQP 1.0 github 上,他们说 SwiftMQ Java 客户端是可以正常工作的。

我不明白的是,我需要使用什么来满足上述要求?如何设置?

【问题讨论】:

【参考方案1】:

您可以只使用Qpid JMS client 库。它实现了 JMS,因此它将与 Spring JMS 集成,它通过网络使用 AMQP 1.0,因此它可以与 RabbitMQ + AMQP 1.0 plugin 一起使用。

【讨论】:

对不起,我没有早点回复。我已经尝试过 Qupid,基本上像官方 RabbitMQ JMS 客户端教程中那样做所有事情,但没有成功。没有错误。该程序刚刚停止响应并且不想退出,直到我终止了该进程。将 Qupid 更改为 JMS 客户端(即使用 AMQP 0-9-1)效果很好,但我需要它与 AMQP 1.0 一起使用。所以,没有成功。 为什么RabbitMQ JMS客户端教程会适用于Qpid JMS客户端?这些是不同的客户。 本教程仅包括设置 ConnectionFactory bean。我所做的只是将 RMQConnectionFactory 更改为 JmsConnectionFactory。它们都是 JMS 客户端,应该提供相同的 API。从这个意义上说,差别不大 很公平。快速的网络搜索表明它应该可以工作(例如this question)。如果没有其他详细信息,就不可能说出它为什么不适合您。 感谢您的链接!我会尝试一下。我很乐意提供更多详细信息,如果我有这些信息,我什至可能不会提出这个问题。没有错误,没有消息。但是您链接的问题似乎与我的情况非常相似

以上是关于如何使用 JMS 和 AMQP 1.0 设置 RabbitMQ?的主要内容,如果未能解决你的问题,请参考以下文章

使用 AMQP 1.0 使用 Qpid 从客户端动态创建队列和主题

使用 Qpid 通过 SSL 与 AMQP 1.0 代理通信

Amazon MQ 将 AMQP 消息转换为 JMS

MQ消息队列的JMS规范和AMQP协议的区别

JMS和AMQP的区别

springboot消息之JMS和AMQP简介