AMQP 与 MQTT:消息协议比较

本文比较了高级消息队列协议AMQP和消息队列遥测传输MQTT,讨论了它们在发布-订阅模式、异步通信、服务质量以及路由机制上的相似性和差异,特别强调了在金融行业和物联网领域的适用场景。
摘要由CSDN通过智能技术生成

目录

1、什么是协议?

2、AMQP 和 MQTT 简介

3、AMQP 与 MQTT:相似

4、AMQP 与 MQTT:差异

5、AMQP 与 MQTT:用例


1、什么是协议?

        在非技术领域协议是指管理个人或群体之间交互的一组既定规则或指南。例如,当您参加正式活动或聚会时,通常需要遵循有关着装要求、行为和礼仪的协议。该协议确保每个人都了解如何在事件背景下采取行动和互动。

        同样,在计算世界中,协议是规定计算机和设备如何通过网络进行通信的一组规则。就像社交活动中遵循协议一样,网络协议定义了网络上不同设备之间如何传输、接收和理解数据。

        换句话说,在计算机网络中,不同的设备使用网络协议建立通用语言进行通信。这些协议定义了交换数据​​的格式、结构和规则。

2、AMQP 和 MQTT 简介

AMQP(高级消息队列协议)是一种开放标准协议,旨在实现可靠且安全的消息传递。“开放标准”仅仅意味着定义 AMQP 协议规则的文档可供每个人使用和设计符合 AMQP 的应用程序。从根本上来说,AMQP 遵循代理消息传递模式。在该模式中,消息代理充当发布者和订阅者之间的中介。消息首先发布到代理中的交换器。交换机充当路由代理,使用其路由规则将这些消息转发到适当的队列。

另一方面,MQTT(消息队列遥测传输)是一种轻量级且高效的开放标准协议。MQTT 针对受限设备和不可靠网络进行了优化。MQTT 还遵循代理模式,发布者将消息发布到代理中的主题。然后,代理将这些消息广播给订阅该主题的所有消费者。您可能知道这就是 发布-订阅模式。

3、AMQP 与 MQTT:相似

发布订阅模型

        AMQP 和 MQTT 都支持 发布-订阅 消息传递模式。来自一个发布者的消息可以广播给多个订阅者。尽管这两种协议在实现发布-订阅机制的方式上存在明显差异(我们将在后面看到),但最终,这两种代理都可以实现消息传递模式。

异步消息传递

        AMQP和MQTT都支持异步通信。在此通信模式中,发布者将消息发送到代理,而无需等待代理的响应。因此,发布者和订阅者不必同时在线即可进行通信。这是可能的,因为在这两种协议中,代理位于发布者和订阅者/消费者之间 - 完全解耦两个实体。

服务质量 (QoS)

        两种协议都提供多级 QoS 以确保可靠的消息传递。它们提供了最多一次、至少一次和恰好一次消息语义的选项。这使得开发人员可以选择适合其应用要求的可靠性级别。还值得一提的是,这两种协议都存在于应用层。但相似之处仅此而已。

4、AMQP 与 MQTT:差异

消息传递模式

        AMQP协议支持更复杂的路由机制。消息首先进入交换器,然后交换器使用一些预定义的规则将消息路由到正确的队列。

        MQTT 协议具有非常简单的路由机制。消息被发布到一个主题并广播给所有注册到该主题的消费者。MQTT 中不涉及交换器和队列。

在这种情况下,AMQP使用交换机和队列的额外层会带来开销,如果不使用 MQTT 协议消除的话,可以轻松将其最小化。

灵活性和复杂性

除了复杂的路由机制之外,AMQP 还提供了一组丰富的功能。这些功能包括消息持久性和事务性等。这使得它具有高度的通用性——它可以用于广泛的用例。但缺点是实施和管理比较复杂。

另一方面,MQTT 注重简单性和易用性,牺牲了一些高级功能来简化通信。

开销和效率

        AMQP 丰富的功能和复杂的路由机制提供了高级功能,但代价是增加了开销。与 MQTT 相比,AMQP 需要更多的网络占用和计算资源。这是事实,因为 MQTT 被设计为轻量级且高效,优先考虑带宽和功耗优化。

5、AMQP 与 MQTT:用例

AMQP:金融行业

MQTT:物联网

原文地址:AMQP vs MQTT: Messaging protocols compared - CloudAMQP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值