跳转到主要内容

【技术选型】AMQP vs MQTT

5星评论
Average: 5 (1 vote)
Last modified
星期一, 一月 10, 2022 - 16:14

AMQP和MQTT之间的差异

在过去的几十年中,用于消息异步排队的开源协议是AMQP与MQTT。最近,它已经适应了新的更新。AMQP打算成为国际标准组织或国际电化学委员会的一部分,并由OASIS选择,MQTT已采用Eclipse。AMQP使用wire执行其消息队列。因此,它是有线协议,在网络上被转换成大量的字节值。MQTT是为带宽最小的有限设备开发的。它是一个轻量级的广播系统,用户可以像客户端一样传输和接收消息。

AMQP和MQTT之间的正面比较

以下是AMQP与MQTT之间的14个最大差异:

AMQP和MQTT之间的关键区别

AMQP和MQTT都用于物联网。但是,让我们讨论一下主要的区别:

  1. MQTT具有客户机/代理体系结构,而AMQP具有客户机或代理以及客户机或服务器体系结构。
  2. MQTT遵循发布和订阅的抽象,而AMQP遵循响应或请求以及发布或订阅方法。
  3. AMQP的头大小为8bytes,MQTT的头大小为2bytes。MQTT的消息大小很小且已定义,而AMQP具有可协商的和未定义的。
  4. MQTT的方法是connected、publish、close、subscribe和disconnect。AMQP遵循Consume, deliver, publish, get, select, acknowledge, delete, recover, reject, open, and close.
  5. MQTT部分支持缓存和代理,而AMQP则提供完全支持。
  6. AMQP和MQTT都遵循TCP协议、二进制标准和开源队列系统。
  7. AMQP提供的安全性是IPSec、SASL、TLS或SSL,而MQTT只提供TLS或SSL安全标准。AMQP和TCP一起使用SCTP进行传输。OASIS同时支持AMQP和MQTT。
  8. MQTT提供的服务质量是fire和forget,如果QoS为0。如果QoS为1,则至少有一个,如果QoS为2,则正好有一个。AMQP提供的服务质量是与MQTT类似的结算和取消结算格式。

AMPQ与MQTT比较表

以下是AMQP与MQTT之间的比较:

比较的基础 AMQP MQTT
定义 AMQP被扩展为高级消息队列协议。AMQP提供了更丰富的消息传递环境。 MQTT定义为消息队列遥测传输。它提供了一种简单的消息队列服务方式,主要在嵌入式系统中实现.
背景

 

 

AMQP是由金融集团开发的一个开源的、客户驱动的队列。在没有任何定制的情况下,它在市场上一天天地在进步。 MQTT主要由供应商驱动并由IBM开发,实现成本很高。
设计协议

 

 

AMQP使用TCP进行消息的异步传输,而不管选择什么操作系统、硬件或编程语言。它提供了具有完全生命力的消息传递服务。AMQP在网络用户和基础设施资源的不同控制下运行。 与AMQP类似,MQTT在异步方法中使用TCP共享消息,而不依赖于任何属性。它是专门为在网络的最小带宽上运行的小型设备设计的。MQTT将复杂的各方视为由附近的私有基础设施管理的。
框架的优化

 

 

它在数据帧的连线上进行了高级优化,有一种提高服务器性能的缓冲方法。 它还基于线(Wire)框架,它使用类似流的方法来执行帧的最小内存设备。它不允许批量传输消息。
消息服务 AMQP应用于5个不同的属性中,比如不影响生存期的发布者-订阅者,只要它需要,它就保持在队列中,如果没有人使用队列,它就保持不变。它支持各种消息传递循环、经典或传统消息队列、组合以及保存和转发。它执行元数据消息来帮助幂等消息和消息分组。 基于内容的发布和订阅消息传递,并且是高度瞬变的。它主要用于主动路由因此链接的订阅者和发布者。它在传统的延长生命周期消息队列中应用有限。
消息的事务 它支持不同的确认、事务、用例以及整个消息队列。它支持分解各种事务代码,并且在有延迟时确认过期以调整性能。 MQTT不支持任何类型的事务。它只支持一般承认。
连接的安全 AMQP与TLS和SASL是统一的,并且使用特殊的特性来使用连接。它能够消除SASL和TLS策略,并通过不断的更新来提高性能。 MQTT不会处理任何连接中的安全问题。
用户的安全 AMQP利用SASL方法来选择安全性,而不需要改变协议。它为相同网络中的组件提供不同的名称。因此,这个特性使我们能够使用嵌套的防火墙和看门人。在广播任何消息之前,它将与用户进行身份验证。 MQTT需要较小的用户名和最低密码,并且在这个趋势期间不设置任何预防措施。
Last value queues 它不支持队列中的最后一个值。 它提供Retain命令并支持队列中的最后一个值。
消息可靠性 它只启用触发和遗忘策略。一旦接收到,就无法检索。 它类似于AMQP,数据传递太可靠了。

消息的

命名空间

它允许以多种方式查找节点和队列等消息。 它在消息的分层传输中使用“名称空间”。
附加的属性 AMQP支持对等连接,并允许整个网络的负载平衡,它是多路复用的。它可以使用容器,主题是双对称的。 MQTT为DNS服务器提供了基本要求。MQTT是不对称的,不支持任何高级特性。
实现 AMQP是在小于64kb RAM的组件中实现的。 它是开源库中的一个较小的协议,在RAM小于64kb的设备中实现
可扩展性 它的结构点允许在特定的供应商中进行扩展,并同意即将采用的不兼容扩展的方式。它允许通过隔离在层中进行更改。 MQTT需要一个完整的协议草案。

结论

虽然AMQP和MQTT在体系结构和协议上有很多不同,但它们在物联网等各种应用中得到了广泛的应用。作为开源协议,AMQP和MQTT都可以根据客户机需求和可用带宽应用于所有应用程序。

 

原文:https://www.educba.com/amqp-vs-mqtt/

本文:http://jiagoushi.pro/node/1126

讨论:请加入知识星球【首席架构师圈】或者小号【jiagoushi_pro】

 

Article

标签(Tags)

企业架构(35) 数据分析(35) Power BI(32) 微服务(31) 微服务架构(30) Data Analysis(30) 商务智能(30) BI(30) 认证考试(30) 微软认证(30) DA-100(28) 应用安全(27) 考试题(26) 物联网(25) 敏捷(25) Enterprise Architecture(24) 试题(20) 首席架构师(19) 首席架构师推荐(19) 云计算(19) 网络安全(18) 技术架构(17) 机器学习(17) 试卷(17) SAFe(16) 大数据(15) Kafka(15) 规模化敏捷(14) enterprise security architecture(14) 企业安全架构(14) 前端架构(14) microservice(13) 业务架构(13) 数据架构(13) IOT(13) 安全运营(13) 容器云(12) 敏捷建模(12) 服务网格(12) 数据分析师(12) 事件驱动架构(12) 区块链(12) 数据安全(12) 数据湖(11) 应用架构(10) AWS(10) 数据科学(10) 人工智能(10) Kubernetes(10) 产品管理(9) BI数据分析师(9) NGINX(9) 数字化转型(9) 深度学习(9) 软件架构(9) 架构师(9) machine learning(9) 商务智能分析师(8) CIO(8) 技术选型(8) 安全战略(8) 软件测试(8) ArchiMate(8) PostgreSQL(8) Azure(8) Cloud Computing(8) Big Data(8) API(8) MSA(8) MDM(8) 技术趋势(7) 容器云架构(7) 核心实践(7) 无服务器架构(7) JavaScript框架(7) Vue(7) React(7) 参考架构(7) DevOps(7) 数据仓库(7) Data Lake(7) Envoy architecture(7) 容器(7) 主数据架构(7) microservices(7) 技术架构师(7) digital transformation(7) 投资组合管理(6) 安全架构(6) 集成架构(6) 合同测试(6) 工控协议(6) ICS(6) Micro Service Architecture(6) Envoy架构(6) 事件驱动(6) 数字化(6) 微服务架构师(6) strategy(6) 安全工具(6) application security principle(6) Angular(6) Postgresql架构(6) 网络架构(6) agilemodeling(6) 首席架构师精选(6) 高管洞察与创新(6) 云安全(6) 合约测试(5) Event Hub(5) 应用安全原则(5) Enterprise Portfolio Management(5) WAF(5) 编程语言(5) JavaScript Frameworks(5) 用户体验(5) 云原生(5) Agile(5) Python(5) IT战略(5) 企业敏捷性(5) 数字化业务(5) API Gateway(5) 项目管理(5) Digital business(5) 工业控制系统(5) Microservice Architecture(5) ICP(5) 软件架构师(5) 数据挖掘(5) Data Architecture(5) 主数据管理(5) 性能(5) Architecture Overview(5) Best Practices(5) Data Warehouse(5) k8s(5) 战略(5) IoT(5) 解决方案(5) 工业物联网(5) 数据科学家(5) 敏捷数据(4) 领导力(4) IPS(4) 领域驱动设计(4) DDD(4) 性能调优(4) 微前端(4) Vue.js(4) Docker(4) 敏捷核心实践(4) 应用组合管理(4) Agile Core Practice(4) 程序员(4) 数据可视化(4) 前端开发(4) 前端架构师(4) 前端开发工程师(4) 容器云架构师(4) 职业发展(4) executive insights and innovation(4) enterprise agility(4) 数据湖架构师(4) 开源合规(4) 敏捷模型(4) 业务转型(4) 企业微服务架构(4) 消费者驱动的合同测试(4) JWT(4) security(4) 企业架构师(4) architecture(4) 应用架构师(4) blockchain(4) 存储架构(4) GDPR(4) Cloud(4) RESTful(4) 最佳实践(4) 分布式计算(4) 数据湖架构(4) Service Mesh(4) BDD(4) 解决方案架构师(4) Event-Driven(4) SCADA(4) 云原生架构(4) 去中心化(4) IoT(4) IoT(4) Deep Learning(4) EA(3) technology(3) NFR(3) 安全(3) 应用现代化(3) Big Data(3) Spark(3) Microservice(3)