MQTT 和 AMQP 的云连接?

Cloud connectivity for MQTT and AMQP?

MQTT 和 AMQP 在云连接方面有什么区别? 我需要在云 connectivity/cooperation 方面比较这两个协议。 我发现了一些证据表明 AMQP 工作得更好,但我仍然需要找出差异。

AMQP 使用 AMQP 的两个最重要的原因是可靠性和互操作性。顾名思义,它提供了与消息传递相关的广泛功能,包括可靠队列、topic-based publish-and-subscribe 消息传递、灵活的路由、事务和安全性。 AMQP 直接交换路由消息——以扇出形式,按主题,也基于 headers.

MQTT MQTT 的设计原则和目标比 AMQP 的设计原则和目标更简单、更专注——它提供 publish-and-subscribe 消息传递(没有 queues,尽管名称如此)并且是专门为 resource-constrained 设计的设备和低带宽、高延迟网络,例如拨号线路和卫星链路。基本上在嵌入式系统中都能有效使用。

我推荐你使用AMQP

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

这里要指出的最大区别是:我们是在谈论 AMQP 0.x 还是 AMQP 1.0。它们是两种完全不同的协议,只有后者是 ISO/IEC 主要开源产品(如 ActiveMQ 和 Artemis 代理、Qpid Proton 客户端和 Qpid Dispatch Router)支持的标准。 RabbitMQ 等产品支持 AMQP 0.x(仅使用 1.0 版插件)。 最大的区别在于 AMQP 0.x 定义了代理的开发方式,并具有交换、队列和绑定等概念。 在 AMQP 1.0 中没有关于它的信息,AMQP 1.0 是 TCP/IP 之上的应用程序协议,提供更多抽象并且没有指定代理的开发方式。 与 MQTT 的第一个重大区别是 AMQP 1.0 是一种点对点协议:您可以在两个点之间使用它,中间不需要代理。当然,它用于与提供存储转发机制的代理进行通信。您可以将它用于 request/reply 模式和 pub/sub。它有一个内置的类型系统,消息提供元数据信息。

MQTT 是一种轻量级协议,仅与中间的代理一起工作,没有队列的概念(它可以使用 "clean session" 功能在客户端离线时存储消息)。它还有一个优于 AMQP 的特性,比如 "will" 测试。它仅支持 pub/sub 并且消息中没有元数据。

AMQP 比 MQTT 更面向消息传递。它是由 JP Morgan 为商业交易创建的。

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

保罗.