工业物联网的四大基于 TCP 的通信协议 —— 第三部分:AMQP

发布时间:2025-06-05 08:35 分类:业内新闻 浏览次数:45次


本文内容

  • AMQP 是什么及其工作原理

  • 互操作性:AMQP vs MQTT

  • 实时性能:AMQP vs MQTT

    AMQP 的安全性

  • 实现对比:AMQP vs MQTT

  • AMQP 的应用场景


在工业 4.0、工业物联网(IIoT)、智能工厂和智能设备的发展中,跨层级的连接性是核心。具有分层结构的刚性自动化金字塔正逐渐被更复杂的网络结构取代,其中各个节点相互连接并交换数据。

为了实现这种联网,设备必须具备工业物联网能力,即标准化、可扩展、支持 IT 与 OT 系统互操作,并确保安全通信。实现智能通信的协议包括 MQTT、OPC UA、AMQP 和 REST API 等。在我们的多部分博客系列中,您可以了解这些 IIoT 通信协议的关键特性及其适用场景。本系列的第三部分将介绍 AMQP。

AMQP 是什么及其工作原理

高级消息队列协议(Advanced Message Queuing Protocol, AMQP)是一种可互操作的异步发布 / 订阅通信协议。它由摩根大通银行于 2003 年首次开发,2005 年成立了由 RedHat、微软、Software AG 和思科等公司组成的工作组。在发布多个实验性版本(0.8、0.9.1、0.10)后,AMQP 1.0 版本终于在 2011 年发布,并被定义为 OASIS 标准,随后由 OASIS 推动持续开发,2014 年通过 ISO/IEC 认证(19464:2014)。


AMQP 主要应用于企业和金融领域,但也具备进入工业领域的潜力。它常被与 MQTT 比较:宏观上两者都是发布 / 订阅协议,但 AMQP 定义了更完整的生态系统(下文将详细对比)。在 AMQP 拓扑结构中,客户端和代理均称为 “容器(Containers)”(图 1),容器由多个节点组成,节点可以是生产者(Producer)、消费者(Consumer)或队列(Queue)。生产者生成消息,消费者接收消息,代理存储和转发消息,因此客户端可同时扮演生产者和消费者角色。应用内的节点可扁平或分层连接,外部通过 “链路(Links)” 连接 —— 链路是两个节点之间的单向通道,在会话层级上建立,具有唯一标识符,若连接中断可在恢复后重建。

AMQP 的另一个特点是网络中可集成路由器(Routers):路由器仅实现 AMQP 传输层,负责消息传输而不存储队列,在生产者和消费者之间建立同步连接,支持标准的请求 / 响应通信路径,适用于生产者与消费者位于不同地理位置的场景。AMQP 拓扑中,代理和路由器可并行存在,无需集成到同一设备。消息传输机制包括:


  • 已确定(Settled):最多传输一次

  • 未确定(Unsettled):至少传输一次
    消息整体格式为 XML(含注释),但消息体支持二进制、JSON、Avro 等多种编码格式。

互操作性:AMQP vs MQTT

  • AMQP:协议本身仅定义 “数据类型” 作为互操作性特征,通过链路机制确保特定生产者节点可用,一定程度上适合计算机与机器交互,但设备间自由通信仍依赖人工定义规则,本质上仍需人为介入主题和数据结构的匹配。

  • MQTT:无标准化层级定义,依赖人工统一主题和格式,互操作性更弱。
    总结:两者在人机交互场景中相似,均需通过手册查询可用数据;AMQP 在机器间互操作性上略优,但仍非完全自动化。

实时性能:AMQP vs MQTT

作为发布 / 订阅协议,AMQP 传输时间相对较短,但由于有效载荷通常大于 MQTT,实时性略逊于 MQTT,仍可实现 “近实时” 通信,适合对延迟不极端敏感的场景。

AMQP 的安全性

AMQP 协议本身不内置安全机制,需依赖外部措施实现:


  • 网络层加密:通过 TLS 加密底层连接

  • 身份认证:使用 SASL(简单认证和安全层)对订阅者进行认证

实现对比:AMQP vs MQTT

维度AMQPMQTT
架构复杂度支持生产者 / 消费者 / 路由器多层级拓扑,功能更丰富,资源需求(存储、计算)更高。轻量化设计,仅需代理解耦发布者与订阅者,资源占用低。
实现难度需处理链路、会话、路由等复杂机制,建议使用成熟库(如 RabbitMQ)开发。协议简单,易于嵌入式设备实现,库资源丰富。
适用场景需要异步消息队列、跨地域通信或企业级消息系统的场景。低功耗、低带宽的物联网设备(如传感器、嵌入式终端)。

AMQP 的应用场景

AMQP 的核心优势在于企业级消息系统独立于外部协议的完整解决方案,典型应用包括:


  1. 监控与全局更新发布:如金融系统中的交易状态同步、企业 IT 系统的配置更新推送。

  2. 离线数据投递:为断开连接的客户端缓存消息,恢复连接后批量交付。

  3. 风险数据监控与内部流程控制:如银行实时交易风控、制造业设备状态预警。

  4. 事件分发:在微服务架构中实现组件间的松耦合通信。


扫描关注微信

关注我们

版权所有 ©  恩尼比特电子科技(深圳)有限公司    地址:深圳市宝安区西乡宝民二路3号浩泰大厦710
备案号:粤ICP备2025420015号-1