跳转至

分享|MQTT 与 MQ 之区别 —— MQTT 能作为 MQ 使用吗?

MQTT(Message Queuing Telemetry Transport) 和 MQ(Message Queue) 都涉及消息传递,但 MQTT 是一种通信协议,MQ 是一种消息队列系统。2023 年 11 月 20 日

答案是肯定的: 可以

MQTT(Message Queuing Telemetry Transport)

  • 通信协议: MQTT 是一种轻量级的通信协议,设计用于在低带宽、不稳定网络环境中传输消息,常用于工业物联网。
  • 发布-订阅模式: 它采用发布/订阅模式,通过中间的消息代理(Broker)协调消息发布者和订阅者之间的通信。

mq_mqtt

MQTT 的特点

  1. 轻量级: MQTT 协议非常轻量,占用的网络带宽和计算资源相对较少,适用于受限制的网络环境和嵌入式设备。
  2. 异步通信: MQTT 支持异步通信方式,发布者发布消息后不需要等待订阅者的响应,提供了松耦合的消息传输。
  3. 发布-订阅模式: MQTT 使用发布-订阅模式,发布者将消息发布到特定的主题(Topic),而订阅者订阅相同的主题,只接收订阅的消息。
  4. 持久化消息: MQTT 支持消息的持久化,当订阅者不在线时,可以将消息保存在消息代理(Broker)中,订阅者上线后可以接收到之前发布的消息。
  5. QoS (Quality of Service): MQTT 提供了三个不同的消息传输质量级别(QoS):0、1 和 2。QoS 0 是最低的级别,消息传输不保证可靠性,QoS 1 和 QoS 2 提供了不同的机制来确保消息的可靠传输。

    a. QoS 0:最多一次传递

    • 这是最低级别的服务质量,消息会被尽力发送一次,但不保证消息是否被接收。
    • 消息会以"最多一次"的方式传递,可能会导致消息的丢失或重复。

    b. QoS 1:至少一次传递

    • 这一级别确保消息至少被传递一次,但可能会导致消息的重复。
    • 发送者会等待接收者的确认,以确保消息被成功接收。如果没有收到确认,发送者会尝试重新发送。

    c. QoS 2:只有一次传递

    • 这是最高级别的服务质量,确保消息只被传递一次。
    • 发送者和接收者都会等待对方的确认,以确保消息的精确传递。这种级别会消耗更多的资源,但可以确保消息的可靠性。

MQ(Message Queue)

  • 消息队列系统: MQ 是指消息队列系统,是一种软件服务,用于在分布式系统中存储、传递和接收消息。消息队列系统提供了一种解耦应用组件的方式,允许它们异步通信。
  • 消息存储和传递: MQ 系统通常包含消息代理(Queue Manager)和消息队列(Queue),消息被放入队列并按顺序处理,确保消息的可靠传递。
  • 应用场景: MQ 系统广泛应用于企业集成、微服务架构、异步通信等场景。它提供了强大的消息传递机制,用于解耦系统中的不同组件,提高系统的可伸缩性和灵活性。

目前常用的 MQ

  • RabbitMQ: 开源消息队列。RabbitMQ 实现了高级消息队列协议(AMQP)。支持多种消息传递模式,包括点对点和发布/订阅。
  • Kafka: 分布式的流处理平台和消息系统。Kafka 设计用于处理大量的实时数据流,适用于日志聚合、事件处理等场景。
  • ActiveMQ: 开源的消息和集成模式服务器。它实现了 Java Message Service(JMS)规范,支持多种消息传递模式和传输协议。
  • RocketMQ: 由阿里巴巴开发的分布式消息中间件,支持消息的有序传递和分布式事务。
  • Redis Pub/Sub: Redis 作为一个内存数据库,也提供了发布/订阅功能,适用于轻量级的消息传递需求。

各自优缺点比较:

特点 / 系统 RabbitMQ Kafka ActiveMQ RocketMQ Redis Pub/Sub
通信模式 发布/订阅,点对点 发布/订阅,点对点 多种消息传递模式,JMS 规范 发布/订阅,点对点 发布/订阅
设计目的 强调消息传递模式的灵活性 实时数据流处理和日志聚合 消息和集成模式服务器,JMS 规范 有序传递和分布式事务 快速消息传递需求
持久性
事务支持
优点 多样的消息传递模式 高吞吐量、水平可扩展性 实现了 JMS 规范,多种模式和协议支持 高性能,有序传递和分布式事务支持 高性能、低延迟,简单易用
开源,强大的社区支持 持久性消息存储 事务、持久性消息支持 阿里巴巴生态系统广泛应用 内存数据库,快速消息发布和订阅
高可靠性、消息持久性 强大的社区支持和生态系统 社区活跃,广泛的应用 分布式系统中有序传递的需求
灵活性强 发布/订阅和消息队列两种通信模式 高可靠性,持久性消息存储
缺点 部署和管理相对复杂 学习曲线陡峭,部署和维护复杂 性能相对较低 社区相对较小,部署和管理复杂 不适用于大规模、高吞吐量系统
在某些极端条件下性能可能受限 相对大的资源消耗 部署和管理相对复杂 相对较大的学习曲线,管理复杂 没有消息持久性,消息可能丢失

总结

MQTT 通常是一种用于实时通信的协议,物联网中的设备可以使用 MQTT 协议进行通信,通过发布消息和订阅消息的方式进行数据交换。而 MQ 系统则提供了更全面的消息处理服务,适用于分布式系统中各种异步通信需求。

关于我们

亿琪软件

上海亿琪软件有限公司,全球开放边缘计算和物联网领域的领导者,全球领先的工业物联网软件开发商和解决方案提供商,助力企业和组织实现数字化转型。公司专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。

  • 2023 年,公司发布“ YiFUSION |工业边缘智能融合网关 ”产品,为工业客户提供一整套的边缘计算+AI 能力:高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。

  • 2022 年,公司推出 “ YiCLOUD |亿琪云 ”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动 OCP 认证,公司还是边缘计算产业联盟 ECC 成员。

关注我们

公司公众号 中文社区公众号
yiqisoft edgexfoundry

联系我们--商业服务

  • 网站:http://yiqisoft.cn
  • 邮件:support@yiqisoft.cn
  • 电话:021-68863086
  • 手机:186-1666-9123