Predix边缘计算的数据总线 - 基于MQTT协议的代理服务器
Predix Machine容器化架构
Predix Machine容器化架构如下图所示,
从上图中,我们可以了解到,
- Predix Machine提供了丰富的工业协议的适配器用来接收设备产生的数据。
- Predix Machine还提供了和云端双向通信的能力,既能上传数据到云端,也可以接收云端的控制指令和训练后的分析模型,完成近乎实时的边缘分析。
- 同时,Predix Machine提供了数据总线和边缘分析应用进行数据交换。
本文我们就详细介绍Predix边缘计算的数据总线 - 基于MQTT协议的代理服务器和MQTT客户端的实践。
MQTT协议
MQTT是专门针对物联网开发的轻量级传输协议,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。目前MQTT拥有各种平台和设备上的客户端,已经形成了初步的生态系统。
该协议有如下吸引人的特性:
- 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
- 对负载内容屏蔽的消息传输。
- 使用TCP/IP提供网络连接,相比HTTP协议,MQTT的头部开销非常低,固定头部只有两个字节。
- 提供三种消息发布服务质量:
- 至多一次,消息发布完全依赖底层 TCP/IP 网络,会发生消息丢失或重复。这一级别适用于,环境传感器数据,丢失一次读记录无所谓。因为不久后还会有第二次发送。
- 至少一次,确保消息到达,但消息重复可能会发生。
- 只有一次,确保消息到达一次。这一级别适用于可靠的消息送达场景,例如计费系统。
MQTT Paho客户端
Predix边缘计算的数据总线就是一个基于MQTT协