1. 简述 MQTT 协议的基本工作原理和核心组件?
答案:
MQTT(Message Queuing Telemetry Transport)是基于发布/订阅模式的轻量级消息传输协议。
基本工作原理:
- 采用发布/订阅模式,发布者和订阅者通过主题(Topic)进行解耦
- Broker(代理服务器)作为中心枢纽,负责接收、过滤和分发消息
- 客户端可以同时作为发布者和订阅者
核心组件:
- Publisher(发布者):向特定主题发布消息的客户端
- Subscriber(订阅者):订阅特定主题并接收消息的客户端
- Broker(代理):消息中转站,负责消息路由和分发
- Topic(主题):消息的分类标识符,采用层级结构
典型工作流程:
- 客户端连接到 Broker
- 订阅者向 Broker 订阅感兴趣的主题
- 发布者向 Broker 发布消息到特定主题
- Broker 根据订阅关系将消息转发给相应的订阅者
2. 详细解释 MQTT 的三种 QoS 等级及其适用场景?
答案:
MQTT 提供三种服务质量(QoS)等级,满足不同业务需求:
QoS 0(At most once - 至多一次):
- 工作机制:消息最多传递一次,不保证送达
- 特点:开销最小,性能最高,但可能丢失消息
- 适用场景:传感器数据、实时监控、可容忍丢失的场景
- 示例:温度传感器每秒上报数据,偶尔丢失几条无关紧要
QoS 1(At least once - 至少一次):
- 工作机制:确保消息至少送达一次,可能重复
- 特点:使用 PUBACK 确认机制,保证消息不丢失但可能重复
- 适用场景:重要但可去重的消息,如报警信息、订单状态更新
- 示例:支付确认消息,确保用户付款得到处理
QoS 2(Exactly once - 恰好一次):
- 工作机制:确保消息恰好传递一次,最高等级保证
- 特点:四步握手确认,开销最大但保证不丢失不重复
- 适用场景:关键业务消息,如财务交易、计费信息
- 示例:银行转账金额,必须准确无误且不能重复处理
选择建议:
- 实时性要求高、可容忍少量丢失:QoS 0
- 重要但可