砍材农夫砍材农夫
  • 微信记账小程序
  • java
  • redis
  • mysql
  • 场景类
  • 框架类
  • vuepress搭建
  • hexo搭建
  • 云图
  • llm wiki

    • 基于karpathy
    • gradle
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • nodejs
    • npm
    • webpack
    • 微信
    • 正则
    • uniapp
  • java

    • java基础
    • jdk体系
    • jvm
    • spring
    • spring_cloud
    • spring_boot
    • 分库分表
    • zookeeper
  • python

    • python基础
    • python高级
    • python框架
  • 算法

    • 算法
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI大模型
  • AI插件
  • AI集成框架
  • 相关算法
  • AI训练师
  • 量化交易
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 相关运营
  • docker
  • k8s
  • devops
  • nginx
  • 元宇宙
  • 区块链
  • 物联网
  • linux
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • 思
  • 微信记账小程序
  • java
  • redis
  • mysql
  • 场景类
  • 框架类
  • vuepress搭建
  • hexo搭建
  • 云图
  • llm wiki

    • 基于karpathy
    • gradle
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • nodejs
    • npm
    • webpack
    • 微信
    • 正则
    • uniapp
  • java

    • java基础
    • jdk体系
    • jvm
    • spring
    • spring_cloud
    • spring_boot
    • 分库分表
    • zookeeper
  • python

    • python基础
    • python高级
    • python框架
  • 算法

    • 算法
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI大模型
  • AI插件
  • AI集成框架
  • 相关算法
  • AI训练师
  • 量化交易
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 相关运营
  • docker
  • k8s
  • devops
  • nginx
  • 元宇宙
  • 区块链
  • 物联网
  • linux
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • 思
  • 首页
    • 开发板介绍
    • micropython环境搭建
    • esp32开发板
    • 面包板
    • 万能表使用
  • 面包板
    • 点灯
  • esp32
    • 点亮开发板led灯
    • 点亮外接led
    • 点亮外接oled文字
    • 红外传感器
    • 红外传感器+olde
    • esp32+面包板
  • MQTT编程

    • MQTT入门

      • 物联网 MQTT
      • 物联网 MQTT和Socket
      • 物联网 MQTT订阅性能优势
      • 物联网 MQTT简易版Broker
      • 物联网 MQTT简易版Broker基于Protobuf
    • HiveMQ

      • hivemq实战入门
    • Protobuf

      • Protobuf入门
      • Protobuf入门+梳理
      • Protobuf实战第一篇
      • Protobuf实战第二篇
      • Protobuf实战第三篇
    • emqx

      • emqx入门
    • mica

      • mica入门
  • 物联网 MQTT协议
    • 参考网址
    • 应用场景
    • MQTT协议和同类比较
    • MQTT和Protobuf区别
    • Protobuf同类比较
    • 基于java相关MQTT框架

物联网 MQTT协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种轻量级的发布/订阅模式网络协议

它诞生于1999年,最初用于石油管道的卫星通信(带宽极低、延迟极高),后来在物联网(IoT)领域大放异彩,现已成为物联网最主流的通信协议之一

参考网址

  • MQTT协议[https://mcxiaoke.gitbook.io/mqtt]

应用场景

  • 🌐智能家居

海量设备(智能音箱、控制中枢、APP)通过MQTT进行无缝通信和交互控制

  • 🏭 工业物联网 (IIoT):

实现设备状态实时监控、故障预警、提升效率。如三一重工通过MQTT监控设备,故障预测准确率达90%,并用于压力、流量等远程监测

  • 🚗 车联网:

连接车辆与云平台,实现车辆数据的实时上报、远程控制和导航更新等车内车载通信

  • 🏙️ 智慧城市:

用于城市大脑等大型数据平台,整合环境、交通、能源等各类数据。例如,在智慧水务中跟踪水质并即时告警

  • 🚜 智慧农业:

连接传感器监测土壤温湿度、光照等数据,实现精准灌溉和农业自动化管理

  • 📱 移动应用与消息推送:

利用其长连接和低功耗特性,实现可靠、省电的移动端消息推送

MQTT协议和同类比较

协议一句话定位传输协议通信模型消息开销资源占用可靠性安全性典型场景
MQTT轻量物联网消息传输TCP发布/订阅极小(2字节头)低强(3种QoS)依赖TLS物联网、车联网
CoAP为微型设备设计的协议UDP请求/响应小(4字节头)极低有限(UDP基础)内置DTLS智能家居、传感器
AMQP企业级消息队列协议TCP发布/订阅、点对点等较大高强(金融级)原生SASL/TLS金融、系统集成
XMPP即时通讯协议(XML)TCP发布/订阅、请求/响应最大(文本)高中支持TLS聊天、在线客服
HTTPWeb基础协议TCP请求/响应较大(文本)较高有保障原生TLS网站、REST API

MQTT和Protobuf区别

特性MQTTProtobuf
首要职责消息传输协议 (How to talk)
定义了消息如何在网络中进行交换的规则和流程
数据序列化格式 (What to say)
定义了数据如何被组织和编码成二进制格式,以便高效存储或传输
核心目标轻量、高效、可靠地在受限网络和低功耗设备间传递消息高效地序列化和反序列化结构化数据,追求数据体积小、处理速度快
工作层面位于应用层,是一个独立的消息协议是一种数据表示方法,需要依附于如MQTT的传输协议使用
数据形式消息的“信封”,其Payload(消息体)可以是任意二进制或文本数据消息的“内嵌物”,对Payload中的具体内容进行二进制压缩和编码
核心概念客户端、Broker服务器、主题(Topic)、发布/订阅模式.proto schema定义文件、代码生成、序列化/反序列化
典型应用物联网设备与云端之间的指令下发与数据上报微服务间通信、大数据存储、跨语言数据交换,特适内部系统通信

Protobuf同类比较

分类方案一句话特点适用场景
文本格式JSON人类可读,无需Schema,生态最广Web API、配置文件、调试
类二进制MessagePack / CBOR二进制版JSON,自描述,比JSON小日志、缓存、灵活交换
强模式二进制Protobuf体积小、速度快,强Schema跨语言gRPC、微服务、性能敏感系统
Avro数据紧凑,模式随数据存储,动态解析Kafka、大数据、模式频繁变动
Thrift完整RPC框架,含多种序列化协议跨语言RPC服务
零拷贝二进制FlatBuffers直接访问数据,无需解析游戏、高性能计算
Cap'n Proto极致速度,零拷贝分布式高性能应用

基于java相关MQTT框架

框架名称核心特点与优势适用场景 (Project Level)
Eclipse PahoJava官方参考实现,完全遵循MQTT标准,社区庞大、稳定可靠首选适用于绝大多数需要MQTT通信的Java项目
HiveMQ MQTT Client高性能、API设计优雅(同步/异步/响应式),支持MQTT 5.0和背压控制对性能、吞吐量有高要求的复杂项目
Mica-MQTT国产开源,基于Java AIO,简单易用、低延迟、高性能希望简化自研难度,并追求高性能应用的国产化项目
Spring Integration MQTT与Spring框架无缝集成,通过配置适配器(Adapter)即可实现MQTT通信Spring技术栈项目,可极大简化集成代码
最近更新: 2026/5/7 16:31
Contributors: kcnf, Copilot
Next
物联网 MQTT和Socket