首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >边缘采集断网续传怎么设计:本地缓存、序号补传与去重三步

边缘采集断网续传怎么设计:本地缓存、序号补传与去重三步

原创
作者头像
智能制造MES笔记
发布于 2026-10-26 17:02:14
发布于 2026-10-26 17:02:14
540
举报

结论:工厂网络难免抖动,采集网关必须做到断网不丢数、恢复不重复。方法是本地先落盘、带单调序号、云端按序号去重。

一、先落盘再上传

网关采集到数据后,先写入本地队列(如SQLite或文件型队列),再异步上传,收到云端确认才删除。直接内存转发,一断网数据就没了。

二、每条数据带三个字段

  1. 设备ID
  2. 采集时间戳(网关时间,需校时)
  3. 单调递增序号(每设备独立) 云端以"设备ID+序号"作为幂等键,重复到达直接丢弃。

三、补传策略

  1. 恢复后先传最新数据,保证看板实时,再后台补传历史,避免补传堵塞实时流。
  2. 补传限速,例如每秒固定条数,防止冲击服务端。
  3. 本地队列设上限,满了按"保留关键点位、丢弃高频点位"的规则淘汰,并记录丢弃数量。

四、对比表

方案 | 优点 | 缺点

内存转发 | 简单 | 断网即丢

本地文件队列 | 可靠、实现轻 | 需管理磁盘

本地数据库 | 可查询可重放 | 资源占用较高

五、常见坑

  1. 网关时间漂移,导致时间戳乱序。需定期NTP校时,并以序号为准排序。
  2. 云端接口超时但实际已写入,网关重发造成重复,所以幂等键必不可少。
  3. 磁盘写满后网关死机,要监控剩余空间并告警。

FAQ

问:缓存多久合适?答:按最长预期断网时长乘以数据速率估算,再留一倍余量。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档