JMS and AMQP - RabbitMQ(JMS和AMQP-RabbitMQ)
问题描述
我想了解什么是JMS,以及它是如何与AMQP术语联系在一起的。 我知道JMS是一个API,而AMQP是一个协议。
以下是我的假设(以及问题)
- RabbitMQ使用AMQP协议(而不是实现AMQP协议)
- Java客户端需要使用AMQP协议客户端库来连接/使用RabbitMQ
- JMS API在这里发挥什么作用?JMS API应使用AMQP客户端库连接RabbitMQ?
- 我们通常使用JMS来连接RabbitMQ、ActiveMQ等消息代理,那么这里使用的默认协议是什么而不是AMQP?
上面的一些内容可能是愚蠢的。:-)但是我正试着去想它。
推荐答案
您的问题有点杂乱无章,但让我们逐个查看它的内容。
总体概念:
Java Message Service(JMS)API是一个Java Message Oriented Middleware(MOM)API,用于在两个或多个客户端之间发送消息。JMS是Java平台企业版的一部分,由Java社区过程(Java Community Process)下开发的规范JSR914定义。它是一种消息传递标准,允许基于Java Enterprise Edition(Java EE)的应用程序组件创建、发送、接收和读取消息。它允许分布式应用程序的不同组件之间的通信是松散耦合、可靠和异步的。
现在(来自Wikipedia):
高级消息队列协议(AMQP)是面向消息的中间件的开放标准应用层协议。这个 AMQP的定义功能是消息定向、队列、路由 (包括点对点和发布订阅)、可靠性和 安全性。
最重要的事情(同样来自维基百科):
与仅定义API的JMS不同,AMQP是线路级的 协议。线路级协议是对 作为二进制八位数流通过网络发送的数据。 因此,任何可以创建和解释消息的工具 符合此数据格式可以与任何其他符合 与实现语言无关的工具
您应该知道的一些重要事情:
- 请记住,AMQP是一种不实现JMS API的消息传递技术。
- JMS是API,AMQP是协议,所以说JMS的默认协议当然是客户端是没有意义的 应用程序在调用 WebLogic Web服务。
- JMS只是一个API规范。它不使用任何协议。JMS提供程序(如ActiveMQ)可以使用任何底层协议来 实现JMS API。例如:Apache ActiveMQ可以使用任何 以下协议:AMQP、MQTT、OpenWire、睡觉(Http)、RSS和Atom STOP、WSIF、WS通知、XMPP。我建议您阅读,使用 作为连接协议的JMS传输。
好运:)
这篇关于JMS和AMQP-RabbitMQ的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:JMS和AMQP-RabbitMQ
基础教程推荐
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01