惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
S
Securelist
D
Docker
The Register - Security
The Register - Security
GbyAI
GbyAI
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
罗磊的独立博客
博客园 - 【当耐特】
F
Full Disclosure
WordPress大学
WordPress大学
腾讯CDC
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
I
InfoQ
MyScale Blog
MyScale Blog
量子位
Cyberwarzone
Cyberwarzone
博客园 - 三生石上(FineUI控件)
The Hacker News
The Hacker News
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园_首页
H
Help Net Security
K
Kaspersky official blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Webroot Blog
Webroot Blog
Blog — PlanetScale
Blog — PlanetScale
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
The Cloudflare Blog
P
Proofpoint News Feed
V
Visual Studio Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
爱范儿
爱范儿
P
Privacy International News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
The GitHub Blog
The GitHub Blog
C
Cybersecurity and Infrastructure Security Agency CISA
B
Blog RSS Feed

博客园 - lvlin241

SQL 核心与大数据开发实战:从原理到落地的体系化认知 Hadoop 3.2.1 集群脑裂问题深度解析与防护实践 Hadoop集群脑裂问题深度解析与防护实践 k8s_网络&&存储 Embedding Tools 2022-11-28 09:39 深入解析IO模型:从阻塞到异步的演进之路 k8s系列_基础运维&&YAML windows docker-desktop配置镜像加速器 更改windows Docker-Desktop 镜像默认存储位置 windows 安装 docker 问题“docker engine failed to start...” flink集群运行模式 idea 2019.2 or 2021.3 marketplace plugins are not loaded. Check the internet connection and refresh 解决思路 GC垃圾回收器选择小总结 JDK Document version docker 安装镜像-----redis docker 安装镜像-----mysql linux设置docker阿里云镜像 在线流程图设计工具
Flink Checkpoint 实现机制概述
lvlin241 · 2025-09-16 · via 博客园 - lvlin241

核心:Flink Checkpoint 机制通过定期触发一致性快照实现容错:协调器在 JobManager 注入 Checkpoint Barrier,沿数据流传播,Operator 暂停并保存状态到 State Backend(如 HDFS/S3,支持增量存储)。故障时从最新快照恢复,结合外部事务(如 Kafka 偏移)确保 exactly-once。未对齐模式降低背压场景延迟,配置灵活(如间隔、超时)。

Apache Flink 的 Checkpoint 机制是其容错核心,通过定期创建应用状态的一致快照(Checkpoint)来实现故障恢复,支持 exactly-once 语义。Checkpoint 默认禁用,需要在 StreamExecutionEnvironment 中通过 enableCheckpointing(interval) 启用。以下是其核心实现步骤,基于障碍(Barrier)协调和状态后端(State Backend)交互。

1. 触发(Triggering)

  • Checkpoint 协调器(CheckpointCoordinator,通常在 JobManager 中运行)根据配置的间隔(如 1 分钟)触发 Checkpoint。
  • 配置选项包括:
    • 模式:默认 EXACTLY_ONCE(确保精确一次语义),可选 AT_LEAST_ONCE(低延迟场景)。
    • 最小暂停时间(setMinPauseBetweenCheckpoints):确保 Checkpoint 间有足够进度(如 500ms)。
    • 超时时间(setCheckpointTimeout):超过超时(如 1 分钟)则丢弃。
    • 并发 Checkpoint 数(setMaxConcurrentCheckpoints):默认 1,避免重叠。
  • 未对齐 Checkpoint(Unaligned Checkpoints):在背压下启用,减少 Checkpoint 时间,仅支持 exactly-once 模式。

2. 协调(Coordination)

  • 协调器向数据流中注入特殊记录——Checkpoint Barrier(类似于水印),这些 Barrier 沿着 Operator 链传播,标记 Checkpoint 边界。
  • Barrier 确保状态快照在所有 Operator 间一致:
    • 当 Operator 接收到 Barrier 时,暂停处理后续数据,创建本地状态快照。
    • Barrier 按输入流顺序传播,阻塞下游 Operator 直到上游完成,确保全局一致性。
  • 对于 exactly-once:Barrier 与输入流对齐,防止记录重复或丢失;未对齐模式下,Barrier 可“超车”数据缓冲区,降低延迟。

3. 存储(Storage)

  • 状态快照通过 State Backend 管理:
    • 默认:JobManager 内存(不推荐生产环境)。
    • 生产:持久化存储如 HDFS/S3,通过 CheckpointingOptions.CHECKPOINT_STORAGE 配置目录。
    • 支持增量 Checkpoint(execution.checkpointing.incremental 启用),仅存储变更部分(如 RocksDB 后端)。
  • 外部化 Checkpoint(setExternalizedCheckpointRetention):失败或取消时保留元数据,便于手动清理和恢复。

4. 恢复(Restoration)

  • 故障发生时,Flink 从最新完成的 Checkpoint 恢复:
    • 重启 Job,Operator 从存储加载状态快照。
    • 输入源(如 Kafka)从 Checkpoint 记录的偏移量重放,确保 exactly-once(结合两阶段提交 Sink)。
  • 已完成任务的特殊处理:Checkpoint 继续,但不包含缓冲数据;最终 Checkpoint 指向外部事务(如偏移量)。

核心优势与 Exactly-Once 语义

  • 通过 Barrier 实现异步、分布式快照(Chandy-Lamport 算法变体),无需停止整个 Job。
  • Exactly-once 依赖 Barrier 与状态对齐、外部化事务指针(如 UnionListState 中的 Kafka 偏移),确保恢复后状态精确反映已处理记录。

此机制使 Flink 在高吞吐流处理中实现低开销容错,Checkpoint 时间通常占总处理的 1-5%。