MQTT 消息队列遥测传输

MQTT 消息队列遥测传输

  • Message Queuing Telemetry Transport 是一种轻量级的消息传输协议,基于发布/订阅(Publish/Subscribe)模式,专为低带宽、高延迟或不稳定网络环境设计,支持设备间高效通信,广泛应用于 IoT 物联网(智能家居、环境监测、车联网)、实时推送、聊天软件、远程医疗监控和智慧城市等领域
  • MQTT 是基于 TCP 的应用层协议,是一种基于二进制的协议
  • 轻量级:消息头小,充分利用网络带宽
  • 高效可靠:支持一对多消息传递,很容易实现消息广播到大规模物联网设备群,提供消息传输 QoS 服务质量管理、支持 Keep Alive 心跳机制
  • 安全性:利用 TLS/SSL 加密保障数据传输的安全性
  • 解耦特性:发布者发送消息到特定主题,订阅者订阅感兴趣的主题以接收消息,相互之间感知不到对方的存在,实现解耦通信
  • Retained 保留消息:代理存储发布到主题的最后一条消息,并将其转发给新订阅者,确保新订阅者接收主题的最新状态
  • LWT(Last Will and Testament)遗嘱消息:设备意外断开连接时,代理服务器会发布预设的遗嘱消息,用于通知其他设备状态异常

发布/订阅模式

  • Publisher 发布者(客户端):发送消息到主题,消息的发布者也可以同时是订阅者
  • Subscriber 订阅者(客户端):接收特定主题的消息
  • Broker 代理(消息服务器):作为中间节点(消息中转站),负责接收消息并分发给订阅者
  • Topic 主题(消息的类型):用于标识消息的类别,主题可以是多层次的,使用斜杠分隔,支持通配符订阅
  • Payload 消息:发送消息的数据内容

QoS 服务质量

QoS 0 最多一次:消息可能丢失,但不会重复 QoS 1 至少一次:确保消息到达,但可能重复 QoS 2 正好一次:确保消息只到达一次(最可靠但开销最大)

常见 MQTT Broker

  • Eclipse Mosquitto
  • Apache ActiveMQ
  • EMQX
  • HiveMQ

常见 MQTT Java Client

  • Eclipse Paho Java
  • ActiveMQ Client
相关推荐
bbq粉刷匠11 分钟前
HTTP 深度解析
网络·网络协议·http
tiantianuser26 分钟前
NVME-oF IP 设计16 : 适于高速网络存储系统的IP设计2
网络协议·rdma·高速传输·roce v2·nvme of
FPGA小迷弟2 小时前
AXI4-Stream协议详解与Vivado自定义IP核封装实战
网络协议·tcp/ip·fpga开发·fpga·硬件开发
啦啦啦啦啦zzzz1 天前
TCP协议详解
网络·网络协议·tcp/ip
Little Tian1 天前
基于FPGA的UDP回环实验(二)----ARP模块
网络·网络协议·udp
K成长日志1 天前
BLE链路层--比特流处理
网络·物联网·网络协议·蓝牙·iot·ble·无线
zhao3266857511 天前
静态IP代理固定IP与动态IP的根本差异,账号操作安全性如何体现
网络·网络协议·tcp/ip
SendTomo2 天前
P2P文件传输工具对比:SendTomo vs send.wang
javascript·网络协议·webrtc·html5·p2p
qyyyyy5702 天前
英文技术标准和协议规范怎么读?RFC、接口规范与安全标准 PDF 翻译流程
网络协议·网络安全·机器翻译·csrf·技术美术
运维全栈笔记2 天前
致远 OA HTTPS 配置避坑指南
网络协议·http·https