NNG 作为 Nanomsg 项目的衣钵传承者,是一个强大的消息总线库,支持 SP 协议和 HTTP/WebSocket 等拓展。在其优秀的多线程模型和网络层 API 基础上,NNG 提供了各种丰富的消息模式支持,在物联网、工业控制、游戏、金融交易等领域都有广泛应用。
合作方案
EMQ 长期以来一直是 nanomsg/NNG 项目的金牌赞助商。我们联合发布了 NanoMQ —— 下一代超轻量边缘 MQTT 消息服务器。 我们之所以开始合作,是因为 EMQ 看到了像 mosquitto 这样的传统边缘软件的缺点。 它们对于现代边缘硬件来说已经过时了,这需要更强大的性能和基于事件的架构。
因此,我们从 NNG 中提取引擎并将其重建为消息中心的 Actor 模型。 基于 NNG 的异步 I/O 线程模型。 凭借 NNG/Nanomsg 非凡的网络 API 设计,让 NanoMQ 本身只专注于 MQTT 层和大量插件。
此外,NNG 的可扩展性协议支持各种消息传递模式。对于 eKuiper 的插件开发来说,它是灵活且有价值的。 它拓宽了 MQTT 代理(EMQ X)的消息模式,使设备连接更容易。
NanoMQ 项目致力于交付适用于现代 IoT 和嵌入式平台的超轻量 MQTT 消息引擎,通过高效的内部 IPC 能力,弥合边缘硬件和云端的架构差异,连接物理世界与数字智能。接棒 EMQ X Edge,赋予边缘消息汇聚再分发能力,进而为边缘计算应用开发提供便利。
NanoMQ 分为 3 个部分:
- nanolib:主要提供边缘数据缓存、MQTT 订阅关系存储和消息路由能力。
- nanomq:是一系列工具和服务的入口,其中消息引擎(Broker)功能是其主要功能,管理所有连接,负责提供如状态通知、钩子函数等功能。目前还有消息队列 mq 功能。
- nanonng:是基于 NNG 优化的可用于 MQTT 协议的多线程模型和异步 IO 库。
未来,EMQ 将依靠自己在 5G&IoT 领域深厚的开发经验和产品实施落地能力,帮助 NNG 集成更多泛用的物联网协议,拓宽其应用面。在 NanoMQ 项目合作的同时,也将通过开源社区技术反哺 NNG 项目,为其提供 MQTT 协议支持,使其可以作为一个性能优秀的 MQTT SDK 使用。