我正在尝试了解什么JMS及其如何与AMQP术语连接。我知道JMS是API,AMQP是协议。
这是我的假设(以及问题)
以上某些内容可能是愚蠢的。:-)但是,想把我的头缠住它。
您的问题有点混乱,类似于试卷中的一个棘手问题:)(因为老师总是想问一些简单的问题,使复杂的:DI希望您不是老师:))让我们一个个地查看所有这些问题。
如你所知:
Java消息服务(JMS)API是面向Java消息的中间件(MOM)API,用于在两个或多个客户端之间发送消息。JMS是Java平台企业版的一部分,并由在Java社区流程下开发的规范定义为JSR914。它是一种消息传递标准,允许基于Java企业版(Java EE)的应用程序组件创建,发送,接收和阅读消息。它允许分布式应用程序不同组件之间的通信松散耦合,可靠且异步。
现在(来自维基百科):
高级消息队列协议(AMQP)是面向消息中间件的开放标准应用程序层协议。AMQP的定义功能是消息定向,排队,路由(包括点对点以及发布和订阅),可靠性和安全性。
最重要的是(再次来自维基百科):
与仅定义API的JMS不同,AMQP是线级协议。线级协议是对作为八位字节流通过网络发送的数据格式的描述。因此,任何可以创建和解释符合此数据格式的消息的工具都可以与任何其他兼容工具进行互操作,而与实现语言无关
您应该知道一些重要的事情:
祝好运 :)
I am not sure but I believe that AMQP also uses HTTP/S protocol but AMQP is enhacement is messaging protocol over HTTP
:不。那是不正确的。JMS uses simple HTTP but for RabbitMQ/ActiveMq, they uses enhanced protocol.
:不。那是不正确的。JMS只是API规范。它不使用任何协议。JMS提供程序(例如ActiveMQ)可以使用任何基础协议来实现JMS API。例如:Apache ActiveMQ可以使用以下任何协议:AMQP,MQTT,OpenWire,REST(HTTP),RSS和Atom,Stomp,WSIF,WS Notification,XMPP。我已经编辑了答案。现在,有争议的部分已被替换。
@brainOverflow我不知道是谁编辑了我的答案并给出了这个不正确的观点,该观点是在数字3。.因为我已经问过你在第二点说的话。在拒绝投票或提出建议之前,请务必仔细阅读
我已经从该PDF中添加了内容,因此您也可以转到其他一些链接