Apache Flink 核心概念
无界数据流的实时计算引擎,支持高吞吐、低延迟、精确一次的状态一致性。
Stateful Computations over Data Streams
请从左侧菜单选择具体知识点进行可视化学习 👈
Flink Barrier (栅栏) & Alignment (对齐)
核心痛点:在分布式流处理中,如何保证数据的一致性?Flink 引入了 Barrier (栅栏) 机制。
⚡️ 演示步骤 (Step-by-Step):
- 点击 "注入 Barrier" 按钮。
- Barrier N 会被注入到所有输入流 (Channel A & B) 中。
- 对齐 (Alignment): 如果 Channel A 的 Barrier 先到,它会暂停 (Block) 该通道的数据处理,直到 Channel B 的 Barrier 也到达。
- 快照 (Snapshot): 当所有 Barrier 都到达算子时,触发状态快照,然后解除阻塞,继续处理数据。
普通数据
Barrier (界限)
🚫 通道阻塞 (Buffering)
📸 触发快照
Flink Watermark (水位线)
核心痛点:数据因网络延迟 "乱序 (Out-of-Order)" 到达怎么办?比如 10:05 的数据比 10:02 的数据先到。
🌊 演示原理:
- Current Watermark (水位线): 代表系统认为 "时间 T 之前的数据都已经到齐了"。
- Late Data (迟到): 如果数据的 Event Time < Watermark,说明它太晚了,会被丢弃 (或侧流输出)。
- On Time (正常): 如果数据的 Event Time >= Watermark,则被正常处理。
WM: 0
✅ 有效数据 (Event Time > WM)
❌ 迟到丢弃 (Event Time < WM)
🌊 水位线 (推进中)