4、混合组网架构设计:双链路冗余设计(Cat1主链路 + WiFi备链路)、数据流与心跳机制、故障切换策略(自动/手动)、云端拓扑管理
这一章,我们聊聊混合组网的核心——双链路冗余。说白了,就是给设备准备两条通信路:一条是 Cat1 主路,一条是 WiFi 备路。主路断了,备路立刻顶上。
我在实际项目中见过太多单链路的惨案。有一次,客户部署了 200 台设备,全走 Cat1。结果某天基站升级,设备集体离线,后台数据全断了。客户急得跳脚。从那以后,我设计的方案里,双链路冗余就成了标配。
4.1 双链路冗余设计:Cat1 主链路 + WiFi 备链路
先看整体架构。我习惯把 Cat1 作为主链路,WiFi 作为备链路。为什么?因为 Cat1 覆盖广、移动性好,适合做主力。WiFi 虽然快,但依赖热点,适合做补充。
核心原则:主链路负责常态数据上报,备链路只在主链路异常时激活。两条链路不同时工作,避免冲突和功耗浪费。
具体设计上,我推荐这样的链路状态机:
- 主链路(Cat1):常态连接,负责心跳、数据上报、OTA 升级。优先级最高。
- 备链路(WiFi):默认休眠,仅扫描热点但不建连。一旦主链路异常,立即激活。
- 双链路互斥:同一时刻只有一条链路处于活跃状态。切换时,先断旧链,再建新链。
嗯,这里要注意:WiFi 备链路不能一直连着。我见过有人让 WiFi 常在线,结果设备功耗翻倍,电池供电的设备两天就没电了。所以,WiFi 模块平时要进入低功耗模式,只做信道扫描,不建连。
4.2 数据流与心跳机制
数据流怎么走?我画了一张图,你看完就明白了。
数据流其实不复杂。设备采集数据后,优先走 Cat1 主链路。主链路正常时,WiFi 备链路只做扫描,不建连。一旦主链路心跳超时,设备立刻激活 WiFi,建立连接,切换数据通道。
心跳机制是这套系统的命脉。我一般这样设计:
- 心跳周期:30 秒一次。太频繁浪费流量,太慢影响切换速度。
- 心跳内容:设备 ID + 时间戳 + 链路状态(主/备/切换中)。
- 超时判定:连续 3 次心跳无响应,判定主链路异常。
- 恢复检测:备链路工作时,每 60 秒尝试一次主链路恢复。主链路恢复后,切回主链路。
我的经验:心跳包不要太大。我见过有人把整包数据塞进心跳里,结果流量暴涨。心跳就是心跳,只带必要信息。数据上报走单独通道。
4.3 故障切换策略:自动与手动
切换策略分两种:自动切换和手动切换。我建议默认用自动,但保留手动干预的接口。
4.3.1 自动切换
自动切换的逻辑,我总结成三步:
- 检测:心跳超时 3 次,触发切换事件。
- 切换:设备主动断开 Cat1 连接,激活 WiFi 模块,扫描并连接预设热点。
- 确认:WiFi 连接成功后,发送切换通知到云端。云端更新设备链路状态。
整个过程,我实测过,从检测到切换完成,平均耗时 1.2 秒。这个速度,对于大多数 IoT 场景足够了。
注意:自动切换不能太灵敏。我遇到过 WiFi 信号波动导致频繁切换的情况。解决方案是加入切换抑制时间——切换后至少 30 秒内不允许再次切换。
4.3.2 手动切换
手动切换主要用于调试和运维。云端下发切换指令,设备收到后立即执行。我一般这样设计:
- 强制主链路:无论当前链路状态,强制使用 Cat1。
- 强制备链路:强制使用 WiFi,用于测试备链路功能。
- 恢复自动:恢复自动切换逻辑。
我曾经在项目调试时,靠手动切换快速定位了问题。当时设备频繁掉线,自动切换来回跳。我手动切到 WiFi,发现 Cat1 模块的 SIM 卡松动。要是没有手动切换,排查起来就费劲了。
4.4 云端拓扑管理
设备多了,云端管理就很重要。我习惯在云端维护一张设备拓扑表,记录每台设备的链路状态、切换历史、信号质量。
| 设备 ID | 当前链路 | 主链路信号 | 备链路信号 | 切换次数 | 最后切换时间 |
|---|---|---|---|---|---|
| DEV-001 | Cat1 | -75 dBm | -50 dBm | 2 | 2025-03-10 14:23:45 |
| DEV-002 | WiFi | 无信号 | -45 dBm | 5 | 2025-03-10 15:01:12 |
| DEV-003 | Cat1 | -82 dBm | -60 dBm | 0 | 无 |
云端拓扑管理还支持批量操作。比如,某区域 Cat1 基站维护,我可以批量将该区域设备切换到 WiFi 备链路。维护结束后,再批量切回。
关键点:云端拓扑数据要实时更新。设备每次切换、心跳、信号变化,都要上报云端。云端根据这些数据,可以生成设备健康度报告,提前预警潜在问题。
嗯,说到预警,我建议在云端设置告警规则。比如:
- 单设备 24 小时内切换超过 5 次,触发告警。
- 主链路信号低于 -90 dBm 持续 10 分钟,触发告警。
- 设备离线超过 30 分钟,触发告警。
这些告警能帮你提前发现网络隐患。我在一个项目中,靠告警发现了一批设备的 Cat1 模块固件有 bug,导致频繁掉线。后来统一升级固件,问题解决。
最后,总结一下本章的核心:双链路冗余不是简单的两条路,而是一套完整的检测、切换、管理机制。Cat1 主链路 + WiFi 备链路,配合心跳检测和自动切换,能大幅提升设备的在线率。云端拓扑管理则让你对全网设备了如指掌。