手搓IoT网关踩坑记——MQTT Broker我换了三次
有次客户跟我说你们这网关数据丢了半小时我当时正在吃火锅筷子差点掉锅里。之前一直觉得自己搞的IoT网关挺稳的——树莓派CM4塞进一个铝壳外挂一个RS485转接板接各种传感器上面跑着Mosquitto做MQTT Broker数据通过4G模块往云上推。看起来无懈可击对吧结果一到现场就翻车。翻车原因很简单传感器多了数据量上来了Mosquitto开始丢消息。先说说架构。这边全是Modbus RTU走RS485三十多个节点每5秒轮询一次。每个节点的数据打包成JSON通过MQTT publish到本地Broker然后网关上一个daemon进程订阅所有topic统一处理后通过4G推上云。// 传感器数据打包 cJSON *root cJSON_CreateObject(); cJSON_AddNumberToObject(root, temp, 25.6); cJSON_AddNumberToObject(root, humidity, 68.3); cJSON_AddNumberToObject(root, pressure, 1013.2); cJSON_AddItemToObject(root, ts, cJSON_CreateString(get_timestamp())); char *json_str cJSON_PrintUnformatted(root); mqtt_publish(sensor/data, json_str, QOS_1); cJSON_Delete(root); free(json_str);看着挺正常对吧问题出在QoS和Broker配置上。Mosquitto默认配置对QoS 1的消息处理其实挺佛系的。当客户端同时在线数量多、publish频率快的时候Mosquitto把消息往内存里堆堆到阈值直接drop。我之前用mosquitto -c /etc/mosquitto/mosquitto.conf启动默认max_inflight_messages是20max_queued_messages才100。三十多个节点每5秒发一次网关自己的daemon还要往云端发一份队列根本不够用。改了一轮配置max_inflight_messages 100 max_queued_messages 1000 persistence true persistence_location /var/lib/mosquitto/改了之后好了一点但偶尔还是丢。后来查文档才发现Mosquitto在订阅端处理速度跟不上发布端的时候即使改了队列大小也会因为消息过期时间到了而丢弃。subscription的QoS如果设成0那随缘收消息吧。我最后换了EMQX。说实话一开始觉得杀鸡用牛刀但用上就真香了。EMQX自带Dashboard能直观看到有多少消息in/out、哪个topic堆积了、客户端连接状态一目了然。而且它的共享订阅机制特别适合多节点网关场景——多个网关实例组集群分摊消息不存在单点瓶颈。安装倒是不复杂wget https://www.emqx.io/downloads/broker/v5.0.0/emqx-5.0.0-ubuntu20.04-amd64.deb sudo dpkg -i emqx-5.0.0-*.deb sudo systemctl start emqx默认端口1883Dashboard在18083。我最喜欢的是规则引擎直接在页面上写SQL-like规则把特定topic的数据转发到其他Broker或HTTP服务省掉了自己写转发daemon的活SELECT payload.temp, payload.humidity, payload.ts FROM sensor/# WHERE payload.temp 40 OR payload.humidity 90 DO mqtt:publish({topicalarm/high, qos1})这一下子解决了我之前转发daemon的性能瓶颈。原来自己写的Python转发脚本处理大量消息时GIL锁就是硬伤。用EMQX规则引擎直接在Broker层面搞定延迟从几百ms降到几十ms。折腾了三个周末才把方案稳定下来。现在的结构是传感器 → RS485 → 网关EMQX 边缘计算 → 4G → 云MQTT → 后端。中间加了一层边缘过滤只有超阈值的数据实时上云正常数据每分钟批量上报省了不少流量费。最讽刺的是什么最开始选Mosquitto就是觉得它轻量、配置简单。结果越用越发现简单的东西在小规模没问题规模一起来全是坑。别问我怎么知道的。

相关新闻

15款降AI率软件实测:千笔AI稳坐首选宝座

15款降AI率软件实测:千笔AI稳坐首选宝座

如今 AI 写作工具普及,知网、Turnitin 等平台的 AI 检测规则持续收紧,论文 AI 率超标已经成为学生、科研工作者投稿、答辩前的头号障碍。市面上的降 AI 率工具质量参差不齐,降重效果、平台适配性、内容安全性差距极大。我们对 15 款主流中英文…

2026/7/11 11:09:41阅读更多 →
3步完成黑苹果自动化配置:OpCore Simplify终极指南

3步完成黑苹果自动化配置:OpCore Simplify终极指南

3步完成黑苹果自动化配置:OpCore Simplify终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify是一款专为黑苹果用户设…

2026/7/11 11:04:41阅读更多 →
PHP-Minecraft-Query源码解析:理解Minecraft通信协议

PHP-Minecraft-Query源码解析:理解Minecraft通信协议

PHP-Minecraft-Query源码解析:理解Minecraft通信协议 【免费下载链接】PHP-Minecraft-Query 🐘 PHP library to query Minecraft servers 项目地址: https://gitcode.com/gh_mirrors/ph/PHP-Minecraft-Query 想要获取Minecraft服务器信息却不知道…

2026/7/11 11:04:41阅读更多 →
Docker 构建 ARM64 镜像并导出二进制文件 — 完整操作指南

Docker 构建 ARM64 镜像并导出二进制文件 — 完整操作指南

Docker 构建 ARM64 镜像并导出二进制文件 — 完整操作指南 基于 hello.c 源码,使用 Docker 交叉编译生成 ARM64 平台可执行文件 目录 环境信息源码分析创建 Dockerfile构建 ARM64 镜像验证镜像导出镜像从镜像中提取二进制文件验证提取的二进制文件完整流程图常见问…

2026/7/11 12:04:45阅读更多 →
Beyond Compare 5密钥生成器:免费激活完整指南

Beyond Compare 5密钥生成器:免费激活完整指南

Beyond Compare 5密钥生成器:免费激活完整指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5是一款强大的文件对比工具,但试用期结束后需要授权才能继…

2026/7/11 12:04:45阅读更多 →
IPsec AH/ESP 协议深度解析:5 种场景下的安全服务选择与性能开销实测

IPsec AH/ESP 协议深度解析:5 种场景下的安全服务选择与性能开销实测

IPsec AH/ESP 协议深度解析:5 种场景下的安全服务选择与性能开销实测在网络通信安全领域,IPsec协议簇始终是企业级数据保护的核心技术支柱。作为工作在OSI模型第三层的安全解决方案,IPsec通过AH(Authentication Header&#xff09…

2026/7/11 12:04:45阅读更多 →
3大技术策略破解微信机器人自动化瓶颈:WeChatFerry的企业级解决方案

3大技术策略破解微信机器人自动化瓶颈:WeChatFerry的企业级解决方案

3大技术策略破解微信机器人自动化瓶颈:WeChatFerry的企业级解决方案 【免费下载链接】WeChatFerry 微信机器人,可接入DeepSeek、Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。微信 hook WeChat Robot Hook. 项目地址: https://gitcode.com/…

2026/7/11 12:04:45阅读更多 →
WannierTools入门指南:紧束缚哈密顿量后处理核心教程

WannierTools入门指南:紧束缚哈密顿量后处理核心教程

1. 新手入门:WannierTools到底是什么,为什么值得你花时间学?WannierTools 是一个专为紧束缚模型后处理而生的开源计算工具包,核心定位非常明确:它不负责生成万尼尔函数,而是专门用来“读懂”和“用好”你已…

2026/7/11 12:04:45阅读更多 →
基于深度学习的鸟类检测识别系统(yolo26、yolo12、yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)2027毕业版

基于深度学习的鸟类检测识别系统(yolo26、yolo12、yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)2027毕业版

目录 项目介绍🎯 功能展示🌟 一、环境安装🎆 环境配置说明📘 安装指南说明🎥 环境安装教学视频 🌟 二、数据集介绍🌟 三、系统环境(框架/依赖库)说明🧱 系统环…

2026/7/11 11:59:45阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/10 12:10:00阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/10 12:29:21阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/10 4:59:05阅读更多 →
Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

1. 为什么2025版PR安装比以往更“磨人”?——从弹窗警告到路径陷阱的真实处境 Premiere Pro 2025版不是简单的一次版本迭代,它是一道分水岭。我从去年底开始帮影视工作室、高校剪辑实验室和自由职业者部署2025环境,累计处理了137台设备&#…

2026/7/11 0:03:43阅读更多 →
5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效 【免费下载链接】open-source-mac-os-apps 🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps 项目地址: https://gitcode.com/gh_mirrors/op/open-so…

2026/7/11 0:03:43阅读更多 →
5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI图像生成真正听从你的指挥吗&…

2026/7/11 0:03:43阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/10 13:39:09阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/10 22:20:33阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/10 17:29:22阅读更多 →