在云连接方面,MQTT和AMQP有什么区别? 我需要在连接云方面比较这两个协议,我发现更多证据表明AMQP工作得更好,但我仍然需要找出差异。
答案 0 :(得分:16)
这里要指出的最大区别是:我们是在谈论AMQP 0.x还是AMQP 1.0。它们是两种完全不同的协议,只有后者是主要开源产品支持的ISO / IEC标准,如ActiveMQ和Artemis代理,Qpid Proton客户端和Qpid调度路由器。 RabbitMQ等产品支持AMQP 0.x(仅限1.0版本的插件)。 最大的区别在于AMQP 0.x定义了代理的开发方式,并具有交换,队列和绑定等概念。 在AMQP 1.0中没有关于它的信息,这是一种基于TCP / IP的应用程序协议,提供更多抽象而不指定应该开发代理的方式。 与MQTT的第一个重大区别是AMQP 1.0是一种点对点协议:您可以在两个对等体之间使用它,不需要中间的代理。当然,它用于与提供存储转发机制的代理进行通信。您可以将它用于请求/回复模式和pub / sub。它有一个内置的类型系统,消息提供元数据信息。
MQTT是一种轻量级协议,仅适用于中间没有队列概念的代理(它可以在客户端使用“干净会话”功能离线时存储消息)。它具有AMQP的另一个特征,如“意志”测试。它仅支持pub / sub,并且消息中没有元数据。
AMQP比MQTT更倾向于消息传递。它是由摩根大通为商业交易创建的。
您可以通过深入比较找到有关它们的大量信息。 如果您需要一些资源和链接,请问我;)
保罗。
答案 1 :(得分:10)
<强> AMQP 强> 使用AMQP的两个最重要的原因是可靠性和互操作性。顾名思义,它提供了与消息传递相关的各种功能,包括可靠的排队,基于主题的发布和订阅消息传递,灵活的路由,事务和安全性。 AMQP直接以扇出形式,按主题和基于标题交换路由消息。
<强> MQTT 强> MQTT的设计原则和目标比AMQP更简单,更集中 - 它提供了发布和订阅消息(没有队列,尽管名称),专门针对资源受限的设备和低带宽,高延迟网络,例如拨号线路和卫星链路。基本上,它可以在嵌入式系统中有效使用。
我建议您使用 AMQP 。