Why NanoMQ

超轻量

超轻量

MQTT 服务可以低至 200Kb 的内存占用启动。

全异步 I/O

全异步 I/O

针对物联网和 MQTT 内建 Actor 编程模型并行化计算负载。

多线程并行

多线程并行

优秀的可拓展性,具有良好的多核 SMP(对称多处理)支持和多线程性能。

高性能

高性能

边缘百万级消息处理能力。在多核系统上提供比 Mosquitto 快 2-10 倍的性能表现。

跨平台

跨平台

可无缝移植到任何基于 POSIX 的系统平台。

互操作性

互操作性

数据透明,拓展接口丰富,易于和各类边缘计算框架集成。

快速开始

使用 Docker 安装

docker run -d --name nanomq emqx/nanomq:latest

或者使用源码编译

git clone https://github.com/nanomq/nanomq.git
cd nanomq ; git submodule update --init --recursive
mkdir build && cd build ; cmake .. ; make

NanoMQ 命令行客户端工具用法

# Publish
nanomq_cli pub --url <url> -t <topic> -m <message> [--help]

# Subscribe
nanomq_cli sub --url <url> -t <topic> [--help]

# Connect
nanomq_cli conn --url <url> [--help]

功能特性

完整支持 MQTT 5.0

完整支持 MQTT 5.0

完整支持 MQTT 5.0/3.1.1,与所有标准 MQTT 开源 SDK 兼容。

MQTT 桥接

MQTT 桥接

内置 MQTT 多云桥接功能,简单配置即可接入各类流行的云服务建立云边通道进行多地数据同步。

规则引擎

规则引擎

内置简单规则引擎可以灵活处理边缘数据。也可以与 eKuiper 集成在边缘进行流式数据分析。

消息持久化

消息持久化

针对物联网复杂网络环境场景设计数据持久化和数据缓存功能,桥接消息可以本地缓存后断网续传。重要数据可以在边缘持久化滚动更新。

丰富的集成 API

丰富的集成 API

提供可拓展的事件驱动型 WebHook 接口和运维友好的 HTTP APIs,帮助减少边缘计算应用开发和集成的成本。

全面多功能

全面多功能

通过协议网关支持 nanomsg/ZeroMQ/Websocket 等常用的消息协议,方便在边缘建立灵活的数据路由拓扑。并提供连接加密和安全保障。

Neuron 产品架构

产品架构

NanoMQ 虽小但五脏俱全,是一个各方面都功能完备的小型 MQTT 边缘服务器 + 消息总线。

  • 平台适配层: 检测所运行的硬件平台操作系统,提供适配的系统 API,避免平台绑定问题。
  • 多任务层: 内置针对物联网场景设计的 Actor 模型,提供线程级别的并行能力,能够在现代 SMP 系统上有效拓展。
  • 传输层: 传输层负责对 TCP/UDP 流进行管理, 包括连接管理和流控等. 并且针对不同的场景如 QoS 等来保证 NanoMQ 的 Zero-copy 特性,减少内存消耗提高性能。
  • 协议层: 将数据流转换成 MQTT 消息, 并针对 MQTT 协议产生不同的事件并暴露接口。同时协议层也负责管理各个客户端的消息飞行窗口。
  • 应用层: 实现规则引擎和 MQTT 全局主题树,并读取配置进行对应的桥接以及消息转发功能。并暴露所有的 MQTT 消息事件和 HTTP API 给用户。

加入 NanoMQ 开源社区

开源、开放与连接。与世界各地的 NanoMQ 开发者及用户共同交流学习,获取帮助,分享见解。