# NanoMQ 功能特性

# 占用资源性价比高 & 适用于边缘嵌入式平台

NanoMQ 目标在不同边缘计算平台做到高性价比:达到尽可能高的性能和吞吐量的情况下,保持尽量少的资源消耗占用。现在,NanoMQ 能够以仅仅200Mb的内存消耗支持超过80万条每秒的消息吞吐。

# 只依赖原生 POSIX & 极高兼容性

目前,基于 POSIX API 的操作系统是最受欢迎也是最广泛使用的。为了最大化 NanoMQ 的兼容性,我们最小化了其对于第三方 API 的依赖性,避免功能拓展时受限于依赖库。从项目诞生之初,NanoMQ 就只依赖原生 POSIX API 开发,因此,社区用户能够更简单的自定义 NanoMQ 或将其的二次开发用于不同的边缘计算应用。

# 纯 C/C++ 开发 & 高度可移植性

NanoMQ 项目的一个关键目标是做到高可移植性,用户只需要极小的工作量,简单修改 CMake 即可移植到别的硬件架构上。为了能够在各种不同的边缘计算架构平台良好运行,我们继承了NNG的平台抽象层,未来还将支持 OpenWRT 和 Yocto 等类 Linux 构建系统。通过最小化依赖库和使用纯净 C/C++ 开发,NanoMQ 能够简单方便的移植到各类平台。

# 全异步 IO 支持和多线程支持

从数据中心到服务器,从桌面端到移动端,从云到边缘。硬件配置在不停的进步演化。许多之前用在数据中心和移动平台的 CPU 架构如今在边缘端广泛使用。我们相信 CPU 多核化是行业的发展方向。NanoMQ的异步 IO 框架和多线程优化使其能够在多核 CPU 平台具有强大性能优势。

# 对SMP有良好支持

SMP(对称多处理)技术越来越受到关注。NanoMQ 基于 NNG 的异步 I/O 框架,所以也继承了其能够最大化利用多核能力。在此基础上我们针对 Linux 平台和 MQTT 协议优化后,成功将负载平均分配到每个 CPU 核。因此 NanoMQ 在现代 SMP 系统能够以更少的 CPU 资源占用去承担高达一百万每秒的消息吞吐压力。

# 低延时 & 高吞吐

在50万每秒的消息吞吐压力的测试场景中,所有 pub/sub 请求均成功的情况下,内存占用200兆,90%平均响应延时仅有0.2ms。