【技术选型】AMQP vs MQTT
视频号
微信公众号
知识星球
Chinese, Simplified
AMQP和MQTT之间的差异
在过去的几十年中,用于消息异步排队的开源协议是AMQP与MQTT。最近,它已经适应了新的更新。AMQP打算成为国际标准组织或国际电化学委员会的一部分,并由OASIS选择,MQTT已采用Eclipse。AMQP使用wire执行其消息队列。因此,它是有线协议,在网络上被转换成大量的字节值。MQTT是为带宽最小的有限设备开发的。它是一个轻量级的广播系统,用户可以像客户端一样传输和接收消息。
AMQP和MQTT之间的正面比较
以下是AMQP与MQTT之间的14个最大差异:
AMQP和MQTT之间的关键区别
AMQP和MQTT都用于物联网。但是,让我们讨论一下主要的区别:
- MQTT具有客户机/代理体系结构,而AMQP具有客户机或代理以及客户机或服务器体系结构。
- MQTT遵循发布和订阅的抽象,而AMQP遵循响应或请求以及发布或订阅方法。
- AMQP的头大小为8bytes,MQTT的头大小为2bytes。MQTT的消息大小很小且已定义,而AMQP具有可协商的和未定义的。
- MQTT的方法是connected、publish、close、subscribe和disconnect。AMQP遵循Consume, deliver, publish, get, select, acknowledge, delete, recover, reject, open, and close.
- MQTT部分支持缓存和代理,而AMQP则提供完全支持。
- AMQP和MQTT都遵循TCP协议、二进制标准和开源队列系统。
- AMQP提供的安全性是IPSec、SASL、TLS或SSL,而MQTT只提供TLS或SSL安全标准。AMQP和TCP一起使用SCTP进行传输。OASIS同时支持AMQP和MQTT。
-
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
- 2868 次浏览
SEO Title
Technology selection :AMQP vs MQTT