当前位置: 首页 > 知识库问答 >
问题:

JMS和AMQP-RabbitMQ

闻深
2023-03-14
  • RabbitMQ使用AMQP协议(而是实现AMQP协议)
  • Java客户端需要使用AMQP协议客户端库来连接/使用RabbitMQ
  • JMS API在这里的作用是什么?JMS API应使用AMQP客户端库连接到RabbitMQ?
  • 通常我们使用JMS来连接RabbitMQ、ActiveMQ等消息代理。那么这里使用的默认协议是什么,而不是AMQP?

上面的一些可能是哑巴。:-)但我想把头缠在上面。

共有1个答案

华凡
2023-03-14

你的问题有点乱,就像是试卷中的一个难回答的问题:)(因为老师总是试着问简单的问题而变得复杂:D我希望你不是老师:))让我们一一看看这些问题。

如你所知:

Java消息服务(JMS)API是一个面向Java消息的中间件(MOM)API,用于在两个或多个客户端之间发送消息。JMS是Java Platform Enterprise Edition的一部分,由Java Community Process下开发的规范定义为JSR914。它是一个消息传递标准,允许基于Java Enterprise Edition(Java EE)的应用程序组件创建、发送、接收和读取消息。它允许分布式应用程序的不同组件之间的通信是松散耦合、可靠和异步的。

与仅仅定义API的JMS不同,AMQP是一个有线级协议。有线级协议是对以八位字节流形式通过网络发送的数据格式的描述。因此,任何能够创建和解释符合这种数据格式的消息的工具都可以与任何其他兼容的工具互操作,而不考虑实现语言

一些重要的事情你应该知道:

  1. 请记住,AMQP是一种不实现JMS API的消息传递技术。
  2. JMS是API,AMQP是一种协议,所以说什么是JMS的默认协议是没有意义的,当然客户端应用程序在调用WebLogic Web服务时使用HTTP/S作为连接协议。
  3. JMS只是一个API规范。它没有使用任何协议。JMS提供程序(如ActiveMQ)可以使用任何底层协议来实现JMS API。Apache ActiveMQ可以使用以下任何协议:AMQP、MQTT、OpenWire、REST(HTTP)、RSS和Atom、Stomp、WSIF、WS通知、XMPP。我建议您阅读使用JMS传输作为连接协议。
 类似资料:
  • 问题内容: 我正在尝试使用AMQP 1.0连接到ActiveMQ代理,但是我想在我的应用程序代码中使用JMS。我对使用JMS感兴趣,主要是因为我希望开发人员能够使用他们已经熟悉的API。 我有在本地主机上运行的ActiveMQ 5.14.0和以下代码: 代码总是以相同的方式失败,并且在stacktrace中具有以下根本原因: 这发生在方法调用上。 如果我对ActiveMQ tcp端点运行相同的代码

  • 跟随wiki页面https://cwiki.apache.org/qpid/amqp-java-jms-messaging-client.html到https://cwiki.apache.org/qpid/connection-url-format.html. Simple me需要qpid-amqp-1-0-client-jms-0.20-sources。jar接受URI格式,但它似乎忽视了一

  • 我试图了解AMQP协议的一些方面。目前我有RabbitMQ项目并使用python pika库。所以问题是关于确认和消息预取。 > 假设我们有一个只有消费者的队列(确保这个队列被声明为独占的)。那么,我是否正确理解了:无论我使用ack标志还是不使用ack标志?无论如何,我不应该能够同时处理多条消息,而且没有其他消费者可以接收其他仍在排队的消息。最好不要打开确认,因为这可能会减少AMQP服务器的负载。

  • 介绍 支持在 imi 框架中使用 支持 AMQP 协议的消息队列,如:RabbitMQ 支持消息发布和消费 Github: https://github.com/imiphp/imi-amqp Composer 本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 composer.json 中加入下面的内容: { "require": { "imiphp

  • hyperf/amqp 是实现 AMQP 标准的组件,主要适用于对 RabbitMQ 的使用。 安装 composer require hyperf/amqp 默认配置 配置 类型 默认值 备注 host string localhost Host port int 5672 端口号 user string guest 用户名 password string guest 密码 vhost str

  • 高级消息队列协议(AMQP)是一个异步消息传递所使用的应用层协议规范。作为线路层协议,而不是 API(例如 JMS),AMQP 客户端能够无视消息的来源任意发送和接受信息。现在,已经有相当一部分不同平台的服务器和客户端可以投入使用。 AMQP 的原始用途只是为金融界提供一个可以彼此协作的消息协议,而现在的目标则是为通用消息队列架构提供通用构建工具。因此,面向消息的中间件 (MOM)系统,例如发布/