NScada
文档中心 › 可靠性设计

采集数据不丢的秘密:SQLite + Outbox 断点续传

分类:可靠性设计 · 2026-09-07 · nscada 技术团队

“读到了就转发”的方案在网络上必然丢数据。要做到不丢,必须把“数据”与“发送”解耦:先落库,再异步投递,失败就重试。这就是 Outbox 模式。

一、写路径:一次采集做两件事

  1. 采集到的点位写入本地 SQLite(按天分表 + 保留策略),用于历史查询与补传;
  2. 同一拍的数据写入Outbox 持久队列(先落库再投递),投递成功才删除。

这样“进程崩溃、服务器断电”都不影响:重启后队列里还躺着没发出去的消息。

二、发送路径:失败会怎样

三、监控这些数字

pending(待投递,长期应≈0)
dead(死信,应≈0)
sent(近 7 日成功发送数,随采样增长)

运行监控页与转发通道页可实时看到这几个指标——它是“可靠性”的直接证据。

四、为什么不用内存队列或直接推

内存队列丢在“重启”;直接推丢在“网络抖动”。对工业场景,宁可慢一点、绝不丢点。Outbox + SQLite 的成本只是一张表,收益是全程可审计、可重放。

想直接体验?打开 在线 Demo下载软件
扫码加客服获取完整《部署与联调手册》
客服
扫码联系客服

扫码咨询