元经纪 - 元宇宙与人工智能领域相关产品与服务一站式采购平台

400-6166692

NanoMQ:应用于工业物联网中的MQTT Broker

分类:开源 时间:2023-06-16 03:57 浏览:714
概述
NanoMQ 是一个近几年的开源 MQTT Broker 项目,至今仍在更新维护中。它采用纯 C 语言编写,基于 NNG 的异步 I/O 多线程 Actor 模型,支持 MQTT 3.1.1、MQTT 5.0、SSL/TLS、MQTT over QUIC。
内容

概述

NanoMQ 是一个近几年的开源 MQTT Broker 项目,至今仍在更新维护中。它采用纯 C 语言编写,基于 NNG 的异步 I/O 多线程 Actor 模型,支持 MQTT 3.1.1、MQTT 5.0、SSL/TLS、MQTT over QUIC。 NanoMQ 的突出亮点是轻量级、快速、极低的内存占用,这使它成为一款在工业物联网中表现非常优秀的 MQTT Broker,因为在工业物联网中效率和资源优化非常重要。此外,NanoMQ 还可以用作消息总线,将 DDS、NNG、ZeroMQ 等协议转换为 MQTT,然后再将 MQTT 消息桥接到云端。
NanoMQ 具有高度的兼容性和可移植性,只依赖于原生的 POSIX API。这使得它可以轻松地部署在任何支持 POSIX 标准的平台上,并且能够在 x86_64、ARM、MIPS、RISC-V 等各种 CPU 架构上顺畅运行。
优点
  • 支持多线程和异步 IO
  • 启动占用资源少
  • 可以与无代理协议桥接
缺点
  • 项目还处于早期阶段
  • 不支持集群
应用场景
  • 汽车制造
  • 机器人:边缘服务融合
  • 工业物联网边缘网关

开始

使用 Docker 运行 NanoMQ

docker run -d --name nanomq -p 1883:1883 -p 8083:8083 -p 8883:8883 emqx/nanomq:latest

更多安装选项

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

如果您更喜欢自己安装和管理 NanoMQ,可以从nanomq.io/downloads下载最新版本。

运行 NanoMQ:

nanomq start
## or run nanomq with a specified configuration file
nanomq start --conf <config_file>

从源代码构建

NanoMQ 致力于在各种边缘平台上提供一个简单但功能强大的消息传递中心。

话虽这么说,NanoMQ 可以运行在不同的架构上,例如 x86_64 和 ARM,只需很少的迁移工作。

要构建 NanoMQ,需要 C99 兼容编译器和CMake(3.13 或更新版本)。

  • 建议编译Ninja

    git clone https://github.com/emqx/nanomq.git
    cd nanomq
    git submodule update --init --recursive
    mkdir build && cd build
    cmake -G Ninja ..
    ninja
  • 或者编译make

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

构建选项

除了标准选项之外,还有一些使用 CMake 定义的配置选项,例如CMAKE_BUILD_TYPE

  • -DNNG_ENABLE_QUIC=ON: 构建具有 QUIC 桥接功能的 NanoMQ
  • -DNNG_ENABLE_TLS=ON: 使用 TLS 支持构建。(需要 提前安装mbedTLS )
  • -DBUILD_CLIENT=OFF:禁用 nanomq 工具客户端套件(包括 pub / sub / conn )
  • -DBUILD_ZMQ_GATEWAY=ONnanomq_cli:使用zeromq网关工具构建
  • -DBUILD_DDS_PROXY=ON:使用dds客户端构建nanomq_cli(代理/子/发布)
  • -DBUILD_BENCH=ON: 构建 nanomq_climqtt 工作台
  • -DENABLE_JWT=ON: 为 http 服务器构建 JWT 依赖
  • -DNNG_ENABLE_SQLITE=ON: 构建支持 sqlite 的 nanomq
  • -DBUILD_STATIC_LIB=ON: 将 nanomq 构建为静态库
  • -DBUILD_SHARED_LIBS=ON: 将 nanomq 构建为共享库
  • -DDEBUG=ON: 启用调试标志
  • -DASAN=ON: 启用消毒剂
  • -DDEBUG_TRACE=ON:启用ptrace(ptrace是一种允许一个进程“跟踪”另一个进程执行的机制。跟踪器能够暂停执行,并检查和修改被跟踪进程中的内存和寄存器)

资源

网站

访问官网,了解 NanoMQ MQTT broker 并了解它如何应用于当前行业。

开源

NanoMQ 是完全开源的!

执照

麻省理工执照

作者

EMQ 边缘计算团队。

[/hidecontent]

 
微信客服
返回顶部