做工业网关以后,我对稳定这件事的理解变得悲观了一点,也务实了一点。
实验室里的开发环境很容易制造一种错觉:DNS 会工作,时钟大体一致,服务不会爆内存。到了现场,网线可能松动甚至被老鼠咬断,服务器时间还可能慢几分钟。
边缘计算的价值,不只是把一部分计算搬到现场。它更像一种架构态度:承认现实世界不会一直满足我们的前提。
因此,一个边缘服务至少要认真面对这些问题:
| 问题 | 不能只靠什么 | 更可靠的方向 |
|---|---|---|
| 上游暂时不可达 | 无限阻塞 | 本地缓冲、退避重试 |
| 进程意外退出 | 人工重启 | 守护、状态恢复 |
| 设备数据乱序 | 到达时间 | 设备时间与序列信息 |
| 配置错误 | 启动后再观察 | 启动前校验 |
| 磁盘逐渐写满 | 定期人工清理 | 配额、轮转、告警 |
这也是为什么边缘系统常常显得“啰嗦”:缓存、重试、幂等、补偿、心跳、健康检查,似乎都没有直接产生业务功能。
可业务功能并不只是“成功时上传一次”,而是“在不稳定的环境里,长期维持一个可以解释的结果”。