【技术选型】AMQP vs MQTT

QQ群

视频号

微信公众号

知识星球

Chinese, Simplified

AMQP-vs-MQTT

AMQP和MQTT之间的差异

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

AMQP和MQTT之间的正面比较

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

AMQP-vs-MQTT

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都可以根据客户机需求和可用带宽应用于所有应用程序。

 

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

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

本文地址
https://architect.pub/technology-selection-amqp-vs-mqtt
SEO Title
Technology selection :AMQP vs MQTT