边缘平台架构沉思录:Go 架构推演与工程决策
文章平均质量分 81
一套物联网边缘平台的架构推演。26 篇,每篇一个设计决策,有 Go 骨架代码,有“边界与反模式“。不教 API,教你怎么在弱网、低配硬件、无人值守下做取舍。
大侠锅锅
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第 25 篇:边缘 AI 推理——在边缘网关上部署 TFLite / ONNX 模型
边缘计算不只是数据搬运工。当工厂需要在 50ms 内识别出传送带上的缺陷产品时,云端的 AI 模型来不及——网络延迟就让实时检测化为泡影。本文讲解如何在边缘网关(特别是 ARM 设备)上部署和运行轻量级 AI 推理模型,让智能决策发生在数据产生的第一现场。原创 2026-07-29 14:27:51 · 332 阅读 · 0 评论 -
第 24 篇:自建框架 vs 云原生边缘——三大方案选型对比
读完前面的系列文章,你可能会问一个问题:“你花了这么大篇幅讲自建边缘平台,但社区已经有 KubeEdge、K3s、Baetyl 这些云原生边缘方案了。我到底该自建还是直接用现成的?” 本文不站队,只做客观对比——帮你做出符合自己场景的选择。原创 2026-07-26 18:01:31 · 409 阅读 · 0 评论 -
第 21 篇:DataBridge 插件工厂——可扩展的数据外推引擎
边缘不只是把数据送上云。工厂的 MES 系统、本地大屏监控、第三方分析平台都需要实时消费设备数据——走 MQTT、走 InfluxDB、走 Apache IoTDB。如果每加一个外部目标都要改 MessageHub 的代码,那维护成本是指数级的。本文用插件工厂模式实现 DataBridge——加一个新通道只需要实现一个接口、注册一行代码。原创 2026-07-22 21:50:00 · 318 阅读 · 0 评论 -
第 20 篇:EdgeRuntimeSDK 内部架构——多客户端、连接流程与回调分发
你接了一个活——开发一个 Modbus 协议驱动,让边缘网关能读取 PLC 控制器的数据。你的代码需要:如果让业务开发者自己去完成这一堆基础设施的对接(MQTT 连接管理、令牌刷新、Topic 注册、回调路由),他可能花两周在"接入"上,只剩两天写真正的 Modbus 协议解析。EdgeRuntimeSDK 的目标:把"接入平台"的成本从两周降到三行代码。二、架构分层——四层模型为什么是四层? 因为每层的职责和变化频率不同:不是所有模块需要同样的能力。一个数据采集驱动跟一个数据分析模块需要的能力完原创 2026-07-22 09:51:28 · 420 阅读 · 0 评论 -
第 19 篇:远程运维体系——指标、SSH、日志与 OTA 升级
边缘节点的宿命就是"出事时你不在现场"。本文设计一套完整的远程运维代理——采集系统指标、提供 SSH 远程终端、采集业务日志、执行 OTA 升级——让你坐在办公室里就能诊断和修复千里之外的边缘节点。原创 2026-07-21 19:02:33 · 227 阅读 · 0 评论 -
第 18 篇:设备管理全链路——从认证到拓扑到影子的完整方案
边缘网关上的活不只是"跑几个模块"。成百上千的设备(传感器、PLC、摄像头)要接入、要认证、要状态追踪、要命令下发。更复杂的是——设备可能通过多级网关嵌套接入。本文设计一套从设备认证到多级网关路由到设备影子的完整设备管理体系。原创 2026-07-19 09:06:46 · 200 阅读 · 0 评论 -
第 17 篇:离线缓存设计——多文件循环队列保障断网不丢数据
前端流控挡住了"能丢的"和"能慢的",但当网络彻底断开时,所有发往云端的消息都必须落地存下来。为什么不用 SQLite?为什么不用内存队列?本文设计一套基于自定义文件格式的循环队列——追加写入、指针移动即删除、TPS 限速消费、带容量预警。原创 2026-07-17 21:13:09 · 214 阅读 · 0 评论 -
第 16 篇:背压机制——用慢 ACK 实现优雅的流量反压
延迟效果10ms最多 100 TPS——对于严重过载来说压不够100ms最多 10 TPS——有效压降,又不会让客户端超时断连500ms最多 2 TPS——太慢,客户端可能超时断连重发,反而增加流量100ms 是工程实践的黄金值:够慢(把 100 TPS 压到 10 TPS),又不至于让客户端 MQTT keepalive 超时(通常 30s)。原创 2026-07-16 21:21:12 · 336 阅读 · 0 评论 -
第 15 篇:令牌桶流控——在 Broker 入口守住系统的命门
200 个设备同时并发上报消息,Broker 瞬间被打满,内存飙升到 OOM,整个边缘节点挂掉。本文用令牌桶在 Broker 入口处做第一道限流——“桶里有令牌才放行,桶空了就触发保护策略”。原创 2026-07-16 19:00:00 · 301 阅读 · 0 评论 -
第 14 篇:三级可靠性模型——按数据价值分级的消息保障
LOWMEDIUMHIGH发送方式非阻塞协程池缓冲队列 + 限速缓冲队列 + 限速内存缓冲无限速无令牌桶令牌桶MQTT QoS默认QoS 1QoS 1(强制)离线重试3 次后丢弃无限重试无限重试背压策略丢消息 + 回 ACK慢 ACK慢 ACK存储空间占用低(3 次就释放)高(无限等待)高(无限等待)原创 2026-07-16 09:47:34 · 329 阅读 · 0 评论 -
第 13 篇:消息路由引擎——用 YAML 规则匹配让每条数据流向正确的地方
同一条设备数据,有的要上云、有的要推给本地 AI 模块、有的要写到外部数据库。如果每次加目标都要改代码重启,开发效率和稳定性都无法保证。本文用 YAML 配置 + 规则匹配引擎,让运维在云端写一条规则、边缘自动生效——不需要解析器生成器,纯 Go 标准库搞定。原创 2026-07-12 17:00:00 · 368 阅读 · 0 评论 -
第 12 篇:极端场景下的系统韧性——离线退化与主备切换
系统韧性的最高境界不是"永不死机",而是"挂了知道,并且能用最小的代价活下来"。本文设计两个极端场景的应对策略:节点长期断网时如何自动收缩、主节点宕机时备节点如何毫发无伤地接管。原创 2026-07-12 08:54:01 · 307 阅读 · 0 评论 -
第 11 篇:优雅升级探针——先问“能停吗“,再动手升级
升级一个正在处理业务数据的模块,相当于"给正在比赛的跑车换轮胎"。直接停掉升级会丢数据,但无限等待又永远升不了。本文设计一套三阶段升级探针机制——让模块在"忙完这一段"后安全交接,实现升级过程业务零中断。原创 2026-07-11 15:00:00 · 248 阅读 · 0 评论 -
第 10 篇:Reconciliation Loop——持续对比期望与实际,自动修复一切偏差
部署清单赋予了模块一个"期望状态",状态机知道怎么把模块从"当前状态"迁移到"期望状态"。但谁来持续检查模块的实际状态是否发生了漂移?答案是 Reconciliation Loop——它是控制面的"免疫系统",5 秒巡检一次,发现异常立即修复。原创 2026-07-11 09:47:20 · 198 阅读 · 0 评论 -
第 9 篇:状态机实践——状态环 + 步进表替代 if-else 地狱
如果你没接触过状态机,先理解一个生活例子:一台洗衣机有 5 个状态:空闲 → 进水 → 洗涤 → 脱水 → 结束。它不能从"进水"直接跳到"脱水"——中间必须经过"洗涤"。状态之间的跳转是有限且固定的。外部事件(按下按钮)会触发状态变化,但前提是当前状态允许这个变化。你不可能在"洗涤"状态下打开舱门(安全锁限制),这就是 FSM 的规则保护。状态集合——系统可能处于哪些状态(洗衣机:空闲/进水/洗涤/脱水/结束)事件集合——什么信号触发状态变化(洗衣机:按开始/按暂停/定时结束)转换规则。原创 2026-07-10 20:24:30 · 25 阅读 · 0 评论 -
第 8 篇:部署清单驱动架构——用“期望状态“统一管理边缘节点上的一切
边缘节点上有几十个模块。它们该创建、该删除、该升级——由云端统一决策。但边缘网络不稳定,云端命令随时可能丢失。本文设计一套"主动拉取 + 全量 Diff + 事件分发"的架构,让边缘节点在任何网络条件下都能准确执行云端的意图。原创 2026-07-10 20:21:00 · 42 阅读 · 0 评论 -
第 7 篇:边缘安全纵深防御体系——从令牌到硬件加密的完整防线
攻击者可能绕过 JWT 认证(窃取合法令牌)、绕过 mTLS(入侵合法模块进程),但他无法绕过内核。在 Linux 5.4+(边缘节点的最低内核版本)上,eBPF 已经成为主流可用的生产级技术。原创 2026-07-07 21:11:31 · 28 阅读 · 0 评论 -
第 6 篇:模块自升级与自动回滚——空中换引擎
防止网络抖动误判。如果只检查 1 次,HTTP 刚好超时(可能是瞬时高负载),就错误触发回滚,导致不必要的版本切换。原创 2026-07-06 22:28:37 · 66 阅读 · 0 评论 -
第 5 篇:节点重启自愈——两阶段模块恢复机制
这是一个从血泪中总结的经验。从云端拉取最新部署清单对比上次的清单,生成需要创建/更新/删除的模块列表通过状态机驱动模块生命周期变更如果 DeployMaster 先启动,它正在"拉取清单→对比→决策",而 NodeCore 还在恢复其他模块——两边同时在操作模块,导致状态冲突。所以 NodeCore 先静默恢复所有模块(不动用部署清单,只用 SQLite),最后再启动 DeployMaster 让它接管控制权。原创 2026-07-06 22:09:46 · 29 阅读 · 0 评论 -
第 4 篇:策略模式实践——用统一接口管理 Docker 容器、原生进程与 K3s Pod
/ 模块管理器接口——所有部署形态都必须实现// 在容器/进程/Pod 内执行命令这个接口是最小能力契约——只定义了"所有部署形态都必须能做"的操作。像这种只有 Docker 支持的操作,不放在接口里,调用方通过类型断言单独处理。原创 2026-07-05 18:38:07 · 74 阅读 · 0 评论 -
第 3 篇:节点自动化纳管——从裸机到可管理的 7 步安装流水线
preConfig 是写在节点本地的一个 JSON 文件,在出厂时预置。字段作用node_id节点唯一标识,全局唯一,由管理平台生成一次性验证码,用来向云端证明"我是合法的节点",用后失效云端管理 API 的地址和端口project_id项目 ID,用于多租户隔离。原创 2026-07-05 18:27:00 · 43 阅读 · 0 评论 -
第 2 篇:MQTT 协议深度解析——物联网通信为什么选它
别急着写业务代码。不理解 MQTT,后面所有关于消息路由、流控、离线缓存的设计你都会觉得"为什么这么绕"。本文带你从第一性原理吃透 MQTT,并写一个最小可运行的 Go Broker 嵌入你的边缘系统。原创 2026-07-04 14:12:50 · 516 阅读 · 0 评论 -
第 1 篇:开篇|物联网边缘计算的真实挑战与云边端架构全景
本文是整个系列的总纲。读完你会理解:为什么需要边缘计算平台、它要解决哪些传统云架构解决不了的问题、以及一个完整的边缘计算平台长什么样。原创 2026-07-04 13:33:42 · 201 阅读 · 0 评论
分享