首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMS和AMQP - RabbitMQ

JMS和AMQP - RabbitMQ
EN

Stack Overflow用户
提问于 2013-03-01 03:43:29
回答 8查看 64.2K关注 0票数 151

我正在试图了解什么JMS以及它如何与AMQP术语相关联。我知道JMS是一个API,AMQP是一个协议。

以下是我的假设(以及问题)

  • RabbitMQ使用AMQP协议(而不是实现AMQP协议)
  • Java客户端需要使用AMQP协议客户端库连接/使用RabbitMQ。
  • JMS在这里起着什么作用?JMS应该使用AMQP客户端库连接到RabbitMQ吗?
  • 通常我们使用JMS来连接诸如RabbitMQ、ActiveMQ等消息代理。那么这里使用的默认协议是什么而不是AMQP呢?

上面的一些可能是愚蠢的。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-03-01 04:33:26

你的问题有点混乱,但让我们逐一看看它的细节。

一般概念:

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

现在(来自维基百科):

高级消息队列协议(AMQP)是面向消息中间件的开放标准应用层协议。AMQP的定义特征是消息定向、排队、路由(包括点对点和发布和订阅)、可靠性和安全性。

最重要的事情(同样来自维基百科):

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

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

  1. 请记住,AMQP是一种不实现JMS的消息传递技术。
  2. JMS是API,AMQP是protocol.So --说什么是JMS的默认协议是没有意义的,当然,客户端应用程序在调用WebLogic Web服务时使用HTTP/S作为连接协议。
  3. JMS只是一个API规范。它不使用任何协议。JMS (如ActiveMQ)可以使用任何底层协议来实现JMS。对于示例: Apache ActiveMQ可以使用以下任何协议: AMQP、MQTT、OpenWire、REST(HTTP)、RSS、Stomp、WSIF、WS通知、XMPP。我建议你读使用JMS传输作为连接协议

好运:)

票数 128
EN

Stack Overflow用户

发布于 2014-10-16 19:10:25

让我们从基础开始。

RabbitMQ是一种MOM (MessageOriented中间件),它是用Erlang (一种面向TLC的编程语言)和开发的,实现了有线协议AMQP ()。目前,许多客户端API(例如,Java、C++、RESTful等)可以启用RabbitMQ消息传递服务的使用。

JMS ()是一种JCP标准,定义了一组由MOM实现的结构化。实现(即兼容) JMS的MOM的一个例子是ActiveMQ;还有HornetMQ等。这些中间件获取JMS,并相应地实现交换模式。

根据以上所述,以RabbitMQ及其Java的一个实例JMS的框架为例,可以使用RabbitMQ开发JMS实现:此时唯一需要做的事情是根据RabbitMQ规范实现交换模式(通过RabbitMQ)。

关键是:一组API,比如JMS,可以不管技术实现(在本例中是RabbitMQ)。

票数 49
EN

Stack Overflow用户

发布于 2013-03-01 05:48:19

在定义JMS时,没有在JMS客户端和消息服务器之间定义协议。实现JMS的JMS客户机可以使用任何协议与消息服务器通信。客户机只需要遵从JMS。仅此而已。通常,JMS客户端使用他们的消息服务器理解的自定义协议。

另一方面,AMQP是消息客户端和消息服务器之间的协议。JMS客户端可以使用AMQP作为与消息服务器通信的协议。也有这样的客户。

http://www.lshift.net/blog/2009/03/16/openamqs-jms-client-with-rabbitmq-server

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15150133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档