STREAMING SYSTEMS · VISUAL LAB

流处理系统可视化实验室

通过 8 个交互式 SVG 模块,直观拆解流处理系统的核心机制:事件时间与处理时间的偏差、窗口语义、精确一次语义、状态管理、反压流控、Kafka 内部机制、流式聚合与 Watermark 时间语义。纯单文件、零依赖,所有动画基于 requestAnimationFrame 与 transform。

8 Modules SVG + Vanilla JS Zero Dependencies Single File
01Time Semantics

事件时间 vs 处理时间

事件时间是数据实际产生的时间,处理时间是系统处理它的时间。二者因网络延迟与乱序而存在偏差。Watermark 作为事件时间进度指标,用于判定迟到事件。

时间线可视化
02Windowing

窗口语义

将无界流切分为有界片段以进行聚合。Tumbling 窗口不重叠、不间隔;Sliding 窗口可重叠;Session 窗口由活动间隙划分,长度可变。

窗口类型对比
03Exactly-Once

精确一次

通过 Checkpoint Barrier 对齐、状态快照与可重放源实现精确一次语义。对比至少一次(可能重复)与至多一次(可能丢失)的差异。

检查点与故障恢复
04State Management

状态管理

Keyed State 按 key 维护:ValueState 单值、ListState 列表、MapState 映射、ReducingState 增量聚合。后端可选内存或 RocksDB,并通过 Checkpoint/Savepoint 持久化。

状态后端与快照
05Backpressure

反压与流控

当下游处理慢于上游生产时,缓冲区堆积并向上游传播反压。可启用反压(阻塞上游)或关闭反压(丢弃超额数据),权衡延迟与丢数据。

管道反压传播
06Kafka Internals

Kafka 内部机制

主题分为多个分区,每分区有 1 个 Leader 与若干 Follower 副本(ISR)。生产者写 Leader,消费者按消费组订阅并在成员变化时触发再均衡。

分区副本与消费组
07Streaming Aggregation

流式聚合

增量维护聚合状态:每来一个事件即更新 sum/count/min/max,无需重算。窗口关闭时输出最终结果,avg = sum / count。

增量聚合与窗口输出
08Watermark Strategies

时间语义与 Watermark

Watermark 是事件时间进度的标记,决定窗口何时触发。对比三种生成策略:有界乱序、周期性、标点式。事件时间早于水位的事件为迟到事件。

水位策略与窗口触发