<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[binbin3828的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/binbin3828</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; binbin3828]]></copyright><item><title><![CDATA[第 25 篇：边缘 AI 推理——在边缘网关上部署 TFLite / ONNX 模型]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/163300342</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/163300342</guid><author>binbin3828</author><pubDate>Wed, 29 Jul 2026 14:27:51 +0800</pubDate><description><![CDATA[边缘计算不只是数据搬运工。当工厂需要在 50ms 内识别出传送带上的缺陷产品时，云端的 AI 模型来不及——网络延迟就让实时检测化为泡影。本文讲解如何在边缘网关（特别是 ARM 设备）上部署和运行轻量级 AI 推理模型，让智能决策发生在数据产生的第一现场。]]></description><category></category></item><item><title><![CDATA[第 24 篇：自建框架 vs 云原生边缘——三大方案选型对比]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/163218826</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/163218826</guid><author>binbin3828</author><pubDate>Sun, 26 Jul 2026 18:01:31 +0800</pubDate><description><![CDATA[读完前面的系列文章，你可能会问一个问题：“你花了这么大篇幅讲自建边缘平台，但社区已经有 KubeEdge、K3s、Baetyl 这些云原生边缘方案了。我到底该自建还是直接用现成的？” 本文不站队，只做客观对比——帮你做出符合自己场景的选择。]]></description><category></category></item><item><title><![CDATA[第 23 篇：OTA 升级与网络配置——边缘节点免现场运维的最后一环]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/163194771</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/163194771</guid><author>binbin3828</author><pubDate>Sat, 25 Jul 2026 15:52:51 +0800</pubDate><description><![CDATA[第 19 篇讲了指标采集、SSH 远程终端和日志采集这三个"诊断"能力。但诊断完了，最终还是要"修复"。本文聚焦两个"治疗"能力：安全的 OTA 升级（让边缘节点远程升级到新版本）和网络配置（远程改 IP、改 DNS、配路由）。]]></description><category></category></item><item><title><![CDATA[第 21 篇：DataBridge 插件工厂——可扩展的数据外推引擎]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/163114453</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/163114453</guid><author>binbin3828</author><pubDate>Wed, 22 Jul 2026 21:50:00 +0800</pubDate><description><![CDATA[边缘不只是把数据送上云。工厂的 MES 系统、本地大屏监控、第三方分析平台都需要实时消费设备数据——走 MQTT、走 InfluxDB、走 Apache IoTDB。如果每加一个外部目标都要改 MessageHub 的代码，那维护成本是指数级的。本文用插件工厂模式实现 DataBridge——加一个新通道只需要实现一个接口、注册一行代码。]]></description><category></category></item><item><title><![CDATA[第 20 篇：EdgeRuntimeSDK 内部架构——多客户端、连接流程与回调分发]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/163097758</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/163097758</guid><author>binbin3828</author><pubDate>Wed, 22 Jul 2026 09:51:28 +0800</pubDate><description><![CDATA[你接了一个活——开发一个 Modbus 协议驱动，让边缘网关能读取 PLC 控制器的数据。你的代码需要：如果让业务开发者自己去完成这一堆基础设施的对接（MQTT 连接管理、令牌刷新、Topic 注册、回调路由），他可能花两周在"接入"上，只剩两天写真正的 Modbus 协议解析。EdgeRuntimeSDK 的目标：把"接入平台"的成本从两周降到三行代码。


二、架构分层——四层模型

为什么是四层？ 因为每层的职责和变化频率不同：不是所有模块需要同样的能力。一个数据采集驱动跟一个数据分析模块需要的能力完]]></description><category></category></item><item><title><![CDATA[第 19 篇：远程运维体系——指标、SSH、日志与 OTA 升级]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/163084326</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/163084326</guid><author>binbin3828</author><pubDate>Tue, 21 Jul 2026 19:02:33 +0800</pubDate><description><![CDATA[边缘节点的宿命就是"出事时你不在现场"。本文设计一套完整的远程运维代理——采集系统指标、提供 SSH 远程终端、采集业务日志、执行 OTA 升级——让你坐在办公室里就能诊断和修复千里之外的边缘节点。]]></description><category></category></item><item><title><![CDATA[第 18 篇：设备管理全链路——从认证到拓扑到影子的完整方案]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/163010545</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/163010545</guid><author>binbin3828</author><pubDate>Sun, 19 Jul 2026 09:06:46 +0800</pubDate><description><![CDATA[边缘网关上的活不只是"跑几个模块"。成百上千的设备（传感器、PLC、摄像头）要接入、要认证、要状态追踪、要命令下发。更复杂的是——设备可能通过多级网关嵌套接入。本文设计一套从设备认证到多级网关路由到设备影子的完整设备管理体系。]]></description><category></category></item><item><title><![CDATA[第 17 篇：离线缓存设计——多文件循环队列保障断网不丢数据]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162977218</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162977218</guid><author>binbin3828</author><pubDate>Fri, 17 Jul 2026 21:13:09 +0800</pubDate><description><![CDATA[前端流控挡住了"能丢的"和"能慢的"，但当网络彻底断开时，所有发往云端的消息都必须落地存下来。为什么不用 SQLite？为什么不用内存队列？本文设计一套基于自定义文件格式的循环队列——追加写入、指针移动即删除、TPS 限速消费、带容量预警。]]></description><category></category></item><item><title><![CDATA[第 16 篇：背压机制——用慢 ACK 实现优雅的流量反压]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162945175</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162945175</guid><author>binbin3828</author><pubDate>Thu, 16 Jul 2026 21:21:12 +0800</pubDate><description><![CDATA[延迟效果10ms最多 100 TPS——对于严重过载来说压不够100ms最多 10 TPS——有效压降，又不会让客户端超时断连500ms最多 2 TPS——太慢，客户端可能超时断连重发，反而增加流量100ms 是工程实践的黄金值：够慢（把 100 TPS 压到 10 TPS），又不至于让客户端 MQTT keepalive 超时（通常 30s）。]]></description><category></category></item><item><title><![CDATA[第 15 篇：令牌桶流控——在 Broker 入口守住系统的命门]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162924056</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162924056</guid><author>binbin3828</author><pubDate>Thu, 16 Jul 2026 19:00:00 +0800</pubDate><description><![CDATA[200 个设备同时并发上报消息，Broker 瞬间被打满，内存飙升到 OOM，整个边缘节点挂掉。本文用令牌桶在 Broker 入口处做第一道限流——“桶里有令牌才放行，桶空了就触发保护策略”。]]></description><category></category></item><item><title><![CDATA[第 14 篇：三级可靠性模型——按数据价值分级的消息保障]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162922167</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162922167</guid><author>binbin3828</author><pubDate>Thu, 16 Jul 2026 09:47:34 +0800</pubDate><description><![CDATA[LOWMEDIUMHIGH发送方式非阻塞协程池缓冲队列 + 限速缓冲队列 + 限速内存缓冲无限速无令牌桶令牌桶MQTT QoS默认QoS 1QoS 1（强制）离线重试3 次后丢弃无限重试无限重试背压策略丢消息 + 回 ACK慢 ACK慢 ACK存储空间占用低（3 次就释放）高（无限等待）高（无限等待）]]></description><category></category></item><item><title><![CDATA[零拷贝（Zero-Copy）原理详解与 Go 实战：从 4 次拷贝到 0 次 CPU 拷贝]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162806877</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162806877</guid><author>binbin3828</author><pubDate>Mon, 13 Jul 2026 06:30:00 +0800</pubDate><description><![CDATA[零拷贝的核心思想一句话：让数据尽量在内核态完成流转，消除 CPU 参与的、"仅仅路过用户空间"的无效拷贝。问题根源：传统"read + write"有 4 次拷贝、4 次上下文切换，其中 2 次 CPU 拷贝是纯浪费。三条进化路线：省 1 次 CPU 拷贝（用内存映射共享内核缓冲区）。sendfile：数据不进用户态，上下文切换降到 2 次。splice：0 次 CPU 拷贝，真正的零拷贝。Go 中的应用内核零拷贝几乎"免费"自动 sendfile，自动 splice。关键机制是io.Copy。]]></description><category></category></item><item><title><![CDATA[第 13 篇：消息路由引擎——用 YAML 规则匹配让每条数据流向正确的地方]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162805295</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162805295</guid><author>binbin3828</author><pubDate>Sun, 12 Jul 2026 17:00:00 +0800</pubDate><description><![CDATA[同一条设备数据，有的要上云、有的要推给本地 AI 模块、有的要写到外部数据库。如果每次加目标都要改代码重启，开发效率和稳定性都无法保证。本文用 YAML 配置 + 规则匹配引擎，让运维在云端写一条规则、边缘自动生效——不需要解析器生成器，纯 Go 标准库搞定。]]></description><category></category></item><item><title><![CDATA[第 12 篇：极端场景下的系统韧性——离线退化与主备切换]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162805095</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162805095</guid><author>binbin3828</author><pubDate>Sun, 12 Jul 2026 08:54:01 +0800</pubDate><description><![CDATA[系统韧性的最高境界不是"永不死机"，而是"挂了知道，并且能用最小的代价活下来"。本文设计两个极端场景的应对策略：节点长期断网时如何自动收缩、主节点宕机时备节点如何毫发无伤地接管。]]></description><category></category></item><item><title><![CDATA[第 11 篇：优雅升级探针——先问“能停吗“，再动手升级]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162782146</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162782146</guid><author>binbin3828</author><pubDate>Sat, 11 Jul 2026 15:00:00 +0800</pubDate><description><![CDATA[升级一个正在处理业务数据的模块，相当于"给正在比赛的跑车换轮胎"。直接停掉升级会丢数据，但无限等待又永远升不了。本文设计一套三阶段升级探针机制——让模块在"忙完这一段"后安全交接，实现升级过程业务零中断。]]></description><category></category></item><item><title><![CDATA[第 10 篇：Reconciliation Loop——持续对比期望与实际，自动修复一切偏差]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162781506</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162781506</guid><author>binbin3828</author><pubDate>Sat, 11 Jul 2026 09:47:20 +0800</pubDate><description><![CDATA[部署清单赋予了模块一个"期望状态"，状态机知道怎么把模块从"当前状态"迁移到"期望状态"。但谁来持续检查模块的实际状态是否发生了漂移？答案是 Reconciliation Loop——它是控制面的"免疫系统"，5 秒巡检一次，发现异常立即修复。]]></description><category></category></item><item><title><![CDATA[第 9 篇：状态机实践——状态环 + 步进表替代 if-else 地狱]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162770572</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162770572</guid><author>binbin3828</author><pubDate>Fri, 10 Jul 2026 20:24:30 +0800</pubDate><description><![CDATA[如果你没接触过状态机，先理解一个生活例子：一台洗衣机有 5 个状态：空闲 → 进水 → 洗涤 → 脱水 → 结束。它不能从"进水"直接跳到"脱水"——中间必须经过"洗涤"。状态之间的跳转是有限且固定的。外部事件（按下按钮）会触发状态变化，但前提是当前状态允许这个变化。你不可能在"洗涤"状态下打开舱门（安全锁限制），这就是 FSM 的规则保护。状态集合——系统可能处于哪些状态（洗衣机：空闲/进水/洗涤/脱水/结束）事件集合——什么信号触发状态变化（洗衣机：按开始/按暂停/定时结束）转换规则。]]></description><category></category></item><item><title><![CDATA[第 8 篇：部署清单驱动架构——用“期望状态“统一管理边缘节点上的一切]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162770517</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162770517</guid><author>binbin3828</author><pubDate>Fri, 10 Jul 2026 20:21:00 +0800</pubDate><description><![CDATA[边缘节点上有几十个模块。它们该创建、该删除、该升级——由云端统一决策。但边缘网络不稳定，云端命令随时可能丢失。本文设计一套"主动拉取 + 全量 Diff + 事件分发"的架构，让边缘节点在任何网络条件下都能准确执行云端的意图。]]></description><category></category></item><item><title><![CDATA[第 7 篇：边缘安全纵深防御体系——从令牌到硬件加密的完整防线]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162673278</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162673278</guid><author>binbin3828</author><pubDate>Tue, 07 Jul 2026 21:11:31 +0800</pubDate><description><![CDATA[攻击者可能绕过 JWT 认证（窃取合法令牌）、绕过 mTLS（入侵合法模块进程），但他无法绕过内核。在 Linux 5.4+（边缘节点的最低内核版本）上，eBPF 已经成为主流可用的生产级技术。]]></description><category></category></item><item><title><![CDATA[第 6 篇：模块自升级与自动回滚——空中换引擎]]></title><link>https://blog.youkuaiyun.com/binbin3828/article/details/162642918</link><guid>https://blog.youkuaiyun.com/binbin3828/article/details/162642918</guid><author>binbin3828</author><pubDate>Mon, 06 Jul 2026 22:28:37 +0800</pubDate><description><![CDATA[防止网络抖动误判。如果只检查 1 次，HTTP 刚好超时（可能是瞬时高负载），就错误触发回滚，导致不必要的版本切换。]]></description><category></category></item></channel></rss>