MQTT优点
- 轻量和高效:MQTT 消息只有 2 字节的头部开销,节省带宽资源。这使得该协议非常适合低功耗、低带宽的设备。
- 包容不稳定的网络:通过心跳机制检测网络连接状态,及时发现并恢复断线,适用于不稳定网络环境。
- 低功耗:MQTT专为低功耗目标而设计,客户端与服务器之间保持长连接,减少频繁建立连接的开销。
- 高并发:支持上百万个并发设备。
- 消息传输可靠:提供三种服务质量等级,保证在不稳定的网络环境下也能可靠地传输消息。
- 低延迟:由于采用简单的基于主题的发布/订阅模型,实现了近乎实时的消息传输,延迟仅为个位数毫秒级。
MQTT缺点
- 不适合音视频流等内容
- 消息顺序不保证
- 缺乏内置消息路由和处理逻辑
- 过度依赖中间代理:MQTT消息传递高度依赖于broker,broker成为系统的单点故障
Broker选型
- EMQX:GitHub 上 Star 数最高的 MQTT Broker,有 12.6k 个 Star。
- Mosquitto:Star 数排名第二,但使用最为广泛。
- NanoMQ:目前最新、最活跃的 MQTT Broker 之一。
- VerneMQ:虽然在 Github 上的开发并不活跃,但 Star 数排名第三。