前一小节,参考文献[9],论述了mosquitto是如何实现mqtt协议的broker端功能,反向分析给出了系统架构,感兴趣的读者可以根据这个系统架构,快速地理清该产品的每个功能点的关联关系。本小节则从这个开源项目应用价值入手分析。
2.2.2 mosquitto开源应用场景
在这里举一个mosquitto应用的开源的例子-kubeedge,kubeedge是边缘计算的一个开源项目,直接使用了mosquitto开源项目,如下图红框所示。我们知道mosquitto最主要的是实现了broker的功能,充当着mqtt协议的服务器的角色,负责接收和处理来自客户端的发布和订阅数据。
为何在这个开源项目中会选择mosquitto,首先是要了解什么是边缘计算,边缘计算是一种新型的分布式的计算模型,相对于云计算来说,计算、存储和网络资源都卸载到最靠近终端的位置,目的是为了减少网络延迟、海量的设备接入和海量的数据对云计算中心的冲击,这是当前比较新的一个研究方向,笔者会有一个专题专门介绍边缘计算,此处只是简单说明一下。
其次kubedge开源项目是边云协同的典型开源项目,在边缘侧会有终端的孪生设备,在云端会涉及到对终端的控制,这些数据都需要与终端设备进行通信,而mqtt协议作为典型的物联网协议,可以满足对低功耗终端、网络不稳定、高延迟场景下,数据的高质量传输,足够的轻量级,很容易在传感器等计算资源匮乏的设备上实现。mosquitto开源项目除了支持各个版本地mqtt的协议外,对于诸如安全、系统和数据管理都做了很好的支持。借助mqtt broker边缘设备可以订阅终端设备的状态、控制和数据等信息,在边缘侧形成数字孪生设备;在终端设备侧可以定时将自己的属性、能力和状态等信息发布出去,告知边缘侧,而这一切都是mqtt broker的桥梁作用。
除了上面的边缘计算的开源项目,我们后面一个小节还会提到一个商业化的解决方案-HiveMQ[3]。这个商业化的产品其实本质上也是在开源项目mosquitto的基础上打造出来的,只不过针对安全、高吞吐量、数据标准化模型等方面做了加强,使其达到商业级别。
未完待续...
参考文献:
[3]商业化的mqtt组织HiveMQ Introduction :: HiveMQ Documentation
[4]Networking 101: Transport Layer Security (TLS) - High Performance Browser Networking (O'Reilly) (hpbn.co)
[5]MQTT Security Fundamentals - How to use MQTT in a secure way (hivemq.com)
[6]MQTT协议5.0中文版 | MQTT中文网 (p2hp.com)
[7]Eclipse Mosquitto
[8]Download | Eclipse Mosquitto
[9] MQTT协议产品化实现-mosquitto开源产品(1)_linus_ben的博客-CSDN博客