构建低延迟事件分析架构
为大型物理场所构建数据流水线是一项挑战。
2 万人的活动所面临的问题与标准的 Web 应用截然不同。在 Web 应用中,用户分布在不同的时区;而在活动现场,成千上万的人会在同一时间产生数据峰值。
批处理或长轮询会导致延迟。在人群控制中,15 分钟的延迟即意味着失败。你最终只能是在应对已经发生的问题,而不是在预防它们。
为了实现亚秒级速度,你需要建立一条从边缘硬件到仪表板的连续流。
以下是构建弹性遥测流水线的蓝图。
第一层:离线优先的边缘计算
你需要低于 5 毫秒的延迟,同时还需要处理网络中断。请使用带有 Redis 等本地内存缓存的边缘节点。在活动开始前,将你的云数据库镜像到这些节点上。
当参与者扫描标签时,系统会检查本地缓存。这绕过了互联网,确保闸机能够持续运行。
第二层:通过 MQTT 进行异步数据摄取
活动现场的网络通常不稳定。使用 MQTT,因为它非常轻量。边缘节点将消息发布到云端 Broker。随后,Broker 将数据路由到你的摄取队列中。
第三层:全双工 WebSocket
不要让前端请求更新。使用 WebSocket 与你的 API 网关保持持久连接。这能确保运营团队在不到一秒的时间内看到现场的变化。
这种架构允许团队立即发现人群峰值或参与度低的情况。你可以在瓶颈形成之前重新调度人员。
你如何针对密集人群优化你的 IoT 硬件?请在下方分享你的看法。