MQTT和AMQP的云连接?

33

MQTT和AMQP在云连接方面有什么区别?

我需要比较这两种协议在云连接/合作方面的差异。

我发现一些证据表明AMQP效果更好,但我仍然需要找出它们之间的差异。


2
“云连接”究竟是什么意思?支持两种协议的代理可以通过互联网连接。 - hardillb
2个回答

31

需要指出的主要区别是:我们是在讨论 AMQP 0.x 还是 AMQP 1.0 。它们是两种完全不同的协议,只有后者是一种 ISO/IEC 标准,被主要开源产品如 ActiveMQ 和 Artemis broker、Qpid Proton clients 和 Qpid Dispatch Router 支持。而 RabbitMQ 等产品则支持 AMQP 0.x(只需通过插件支持版本 1.0)。

主要区别在于 AMQP 0.x 定义了开发代理应遵循的方式,并具有交换、队列和绑定等概念。AMQP 1.0 中没有关于此的信息,它是基于 TCP/IP 的应用程序协议,提供更多抽象,并未指定代理应该如何开发。

与 MQTT 的首要差异在于,AMQP 1.0 是一种点对点协议:您可以在两个对等体之间使用它,不需要中间代理。当然,它也用于与提供存储转发机制的代理通信。您可以将其用于请求/响应模式和发布/订阅模式。它具有内置类型系统,消息提供元数据信息。

MQTT 是一种轻量级协议,只与中间代理一起工作,没有队列的概念(使用“清除会话”功能时可以存储客户端下线时的消息)。它具有 AMQP 没有的另一项功能-"will"测试。它仅支持发布/订阅,并且消息中没有元数据。

AMQP 更加面向消息传递而非 MQTT。它是由 JP Morgan 为业务交易创建的。

您可以找到很多关于它们深入比较的信息。如果您需要一些资源和链接,请询问我;)

Paolo.


26

AMQP(高级消息队列协议)

使用AMQP的两个最重要的原因是可靠性和互操作性。正如其名称所示,它提供了与消息相关的广泛功能,包括可靠的排队、基于主题的发布/订阅消息、灵活的路由、事务和安全性。 AMQP交换直接路由消息——以扇形形式、按主题和基于标头等方式。

MQTT(消息队列遥测传输)

MQTT的设计原则和目标比AMQP更简单、更专注——它提供了发布/订阅消息(没有队列,尽管名字中含有“队列”一词),并专门为资源受限的设备和低带宽、高延迟的网络设计,例如拨号线路和卫星连接。基本上,它可以有效地用于嵌入式系统。

我建议你使用 AMQP

来源:http://blogs.vmware.com/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接