
1) 【一句话结论】
核心是通过“云边协同+分布式流处理引擎+高可用存储”分层架构,结合Flink等低延迟引擎与Ceph等高可用存储,实现毫秒级低延迟与99.99%以上高可用。
2) 【原理/概念讲解】
老师:同学们,智慧安防对实时视频流处理有两个核心需求——低延迟(比如实时报警需延迟≤100ms)和高可用(系统故障时不能中断服务)。我们分三部分讲设计思路:
3) 【对比与适用场景】
| 对比项 | Flink (实时流处理) | Spark Streaming |
|---|---|---|
| 延迟 | 毫秒级(亚秒级) | 几十毫秒 |
| 状态管理 | 内置,支持持久化 | 需额外组件 |
| 适用场景 | 实时分析、低延迟业务(如视频检测) | 批处理、复杂计算 |
| 对比项 | 分布式存储(如Ceph) | 对象存储(如S3) |
|---|---|---|
| 可用性 | 多副本,高可用 | 单副本,需冗余 |
| 延迟 | 较低(ms级) | 较高(ms级,但适合归档) |
| 适用场景 | 实时数据存储(如视频流) | 归档、离线分析 |
4) 【示例】
from pyflink import StreamExecutionEnvironment
env = StreamExecutionEnvironment.get_execution_environment()
env.set_parallelism(4) # 设置并行度
# 读取视频流(假设通过Kafka接收)
video_stream = env.read_from_kafka("video-topic")
# 处理逻辑:实时检测(如人脸识别)
processed_stream = video_stream.map(lambda record: {
"timestamp": record.timestamp,
"event": "person_detected" if detect_person(record.frame) else "no_event"
})
# 写入结果(如推送到报警系统)
processed_stream.write_to_kafka("alert-topic")
env.execute("Video Stream Processing")
5) 【面试口播版答案】
面试官您好,针对智慧安防实时视频流处理,我的设计核心是通过“云边协同+分布式流处理引擎+高可用存储”分层架构。首先,流处理引擎选Flink,它支持毫秒级低延迟处理,通过状态管理保证实时性;存储用Ceph做实时存储,多副本保证高可用,对象存储做归档;网络方面用5G/千兆以太网,边缘节点处理本地视频,减少回传延迟。这样整体实现低延迟和高可用。
6) 【追问清单】
7) 【常见坑/雷区】