在 Windows 平台搭建 MQTT 服务
引言
MQTT 是一种轻量级、基于发布/订阅模式的消息传输协议,旨在用极小的代码空间和网络带宽为物联网设备提供简单、可靠的消息传递服务。MQTT 经过多年的发展,如今已被广泛应用于资源开采、工业制造、移动通信、智能汽车等各行各业,使得 MQTT 成为了物联网传输协议的事实标准。
出于稳定性、可靠性、成本等多方面的考虑,众多 MQTT 服务实现更倾向于选择拥有丰富开源生态系统的 Linux 环境,Windows 平台上可选的 MQTT 服务相对有限。NanoMQ 是用于物联网边缘的超轻量级 MQTT 消息服务器,具有极高的性能性价比,适用于各类边缘计算平台。NanoMQ 有着强大的跨平台和可兼容能力,不仅可以用于以 Linux 为基础的各类平台,也为 Windows 平台提供了 MQTT 服务的新选择。
本文将以 NanoMQ 为例,使用二进制包和源代码编译两种方式演示如何在 Windows 平台中快速搭建 MQTT 服务。
NanoMQ 简介
NanoMQ 是 EMQ 于 2021 年发布的开源项目,旨在为物联网边缘场景提供轻量级、快速、支持多线程的 MQTT 消息服务器和消息总线。NanoMQ 基于 NNG 的异步 I/O 构建,内置 Actor 多线程模型。相较于 Mosquitto 的单线程设计,NanoMQ 能够充分发挥现代 SMP 系统的多核优势,在边缘多核环境中展现出了比 Mosquitto 高达 10 倍的性能表现。NanoMQ 基于标准 POSIX 接口开发,可以轻松通过 MinGW 的 POSIX 编译环境移植到各类 Windows 环境中。经过三年研发迭代,NanoMQ 于 2024 年 1 月正式加入 LF Edge 基金会,未来将与 LF Edge 旗下的 EdgeX Foundry 框架深度集成,共同促进物联网边缘设备和应用之间的互操作性。
NanoMQ 主要具有以下特性:
- 超轻量化:安装包约 200KB 左右,运行占用资源极小。根据编译和启动的配置,启动所需内存资源从300Kb 到 3Mb 不等。
- 兼容性和可移植性:NanoMQ 采用纯净的 C/C++ 开发,只依赖于标准 POSIX API,同时支持大小端兼容,可无缝对接各类网络应用,零成本迁移到各类嵌入式平台。
- 可伸缩性:借助内置的异步 IO 架构和多线程模型,NanoMQ 在保持轻量化的同时仍具备一定可横向拓展的并发吞吐能力。仅需不到 10MB 的内存消耗,即可支持超过 10W 的消息吞吐。
- SMP 支持:NanoMQ 在边缘多核平台上对 SMP 有着良好的支持,能够充分发挥多处理器的能力,从而提升系统性能。
- 容器支持:NanoMQ 能够轻松地通过容器进行部署和运行,并且与主流的边缘容器编排方案兼容,使得部署过程更加灵活和便捷。
二进制包安装
首先进入 NanoMQ 官网下载页面,选择 Windows 平台下载安装包:
可以在解压后文件夹中的bin
目录下用 Windows 命令行使用 NanoMQ。将解压后的 C:\xxx\nanomq-0.21.10-windows-x86_64\bin
目录添加到环境变量中,则可以在 Windows 命令行或者 PowerShell 中直接使用 NanoMQ。输入 nanomq --help
可以看到简要的使用说明。
使用 nanomq start --conf C:\nanomq\config\nanomq.conf
启动 NanoMQ。其中 C:\nanomq\config\nanomq.conf
为 NanoMQ 配置文件的地址,配置文件示例可以在解压后文件夹中的 config
目录下找到。NanoMQ 的详细配置说明请参见官方文档。
接下来使用 NanoMQ 的 MQTT 客户端工具 nanomq_cli
来进行 NanoMQ 的使用说明。nanomq_cli
同样可以在 bin
目录下找到。
从上图中可以看到 nanomq_cli
的通过 sub
命令订阅了主题 nmqtest
,接收到了 nanomq_cli
通过 pub
命令发布的 HelloWorld
消息。
源码编译与运行
在 Windows 平台编译需要提前准备 MinGW-w64、Make 和 CMake。
- MinGW-w64 是将 GCC 编译器和 GNU Binutils 移植到 Windows 平台下的产物,包括一系列头文件(Win32API)、库和可执行文件,是一个在 Windows 平台上开发和运行原生 Windows 应用程序的开源软件开发环境。Cygwin 同 MinGW 类似,也用于移植 Unix 软件到 Windows,但它们采用截然不同的实现。Cygwin 重视兼容性优先于性能,MinGW 则着重于简化与性能。本文将以 MinGW 为例进行 NanoMQ 的编译。
- Make 和 CMake 则是用于 NanoMQ 项目自动化构建的工具。参考下载地址:MingGW-w64,Make,CMake。其中 MinGW-w64 应尽量选择较新版本。
接下来在 Windows 命令行、PowerShell 或者 Git Bash 中输入以下命令:
# 1. clone 源码 (已通过ZIP下载源代码则不需要这一步) PS: D:\Project> git clone https://github.com/nanomq/nanomq.git PS: D:\Project> cd nanomq # 2. 更新和初始化 git 子模块 PS: D:\Project\nanomq> git submodule update --init --recursive # 3. 创建并进入 build 目录 PS: D:\Project\nanomq> mkdir build PS: D:\Project\nanomq> cd build # 4. 编译 NanoMQ PS: D:\Project\nanomq\build> cmake -G "MinGW Makefiles" .. PS: D:\Project\nanomq\build> make -j 8 # 5. 运行 NanoMQ PS: D:\Project\nanomq\build> .\nanomq\nanomq.exe broker start
除了 NanoMQ 自带的客户端工具,还可以使用开源 MQTT 客户端工具 MQTTX 来进行消息收发测试。
从上图中同样可以看到,订阅了 nmqtest
主题的客户端通过 NanoMQ 收到了另一个客户端发布的 hello
消息。
结语
本文通过二进制包和源码编译的方式完成了 NanoMQ 在 Windows 平台的安装,并对其使用进行了演示测试。NanoMQ 为在 Windows 平台上构建物联网边缘计算应用提供了一个便捷而强大的选择。它的轻量级、高性能以及专注于边缘计算的设计使其成为一个理想的消息传输解决方案。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
零代码教你安装部署Stable Diffusion 3,一键生成高质量图像
本文分享自华为云社区《重磅!【支持中文】stable-diffusion-3安装部署教程-SD3 来了》,作者:码上开花_Lancer。 正如承诺的那样,Stability AI在6月12日正式开源了Stable Diffusion 3(Medium版本)!不愧是AI生图领域的“开源英雄”。最近一段时间,正当所有人都在为OpenAI发布Sora狂欢时,Stability AI更是推出了Stable Diffusion 3的技术报告。这两项技术不约而同都采用了Diffusion Transformer的架构设计。 值得注意的是,Stable Diffusion 3的强大性能其实并不仅限于Diffusion Transformer在架构上所带来的增益,其在提示词、图像质量、文字拼写方面的能力都得到了极大的提升。那么究竟是什么让Stable Diffusion 3如此强大?今天我们就从Stable Diffusion 3的技术报告中解读stable diffusion 3强大背后的技术原理。 接下来就讲讲,怎么在本地部署最新的Stable Diffusion 3,大致分为以下几步(开始操作前...
- 下一篇
成本下降50%,腾讯音乐StarRocks存算分离大规模实践!
作者:腾讯音乐高级数据工程师 陈嘉奇,腾讯音乐高级运营开发工程师 高盛远 小编导读: 腾讯音乐娱乐集团是中国在线音乐娱乐服务开拓者,提供如 QQ 音乐、酷狗音乐等众多知名的移动音频产品。 随着对成本效益的关注不断增强及湖仓一体化技术不断进步,数据基建团队在 2023 年将原有的上千节点 ClickHouse 和 Druid 集群业务迁移至 StarRocks 存算分离。在效率不变的情况下,成本下降了 50%,成果显著。本文将深入探讨他们的迁移策略、实现的成果以及在此过程中积累的最佳实践。希望这些经验能够为大家提供宝贵的参考和指导! 背景介绍 腾讯音乐娱乐集团是中国在线音乐娱乐服务开拓者,提供在线音乐和以音乐为核心的社交娱乐两大服务。腾讯音乐娱乐在中国有着广泛的用户基础,拥有目前国内市场知名的移动音频产品:QQ 音乐、酷狗音乐、酷我音乐、全民 K 歌、懒人听书等产品。 数据基建团队负责搭建集团统一的数据平台,支持数据接入、数据处理、数据查询和数据资产治理等。 架构演进 腾讯音乐在 2021 年的时候为了响应业务敏捷分析的请求,对原有的数据架构进行了升级。 数据分析业务采用 ClickHo...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6