当前位置:   article > 正文

Flink 容错&内存管理&反压_flink 内存管理 1.7.2

flink 内存管理 1.7.2

上一篇内容总结了 Flink 的运行架构和编程模型,这一篇我们要讨论的是 Flink 的设计,包括它是如何解决容错、内存管理、反压问题的,这些知识点是面试的常客,目的是考察大家对 Flink 理解的深度。

本篇面试内容划重点:容错、内存管理、反压。

容错机制

Flink 的容错机制主要是依靠 barrier + checkpoint 来产生分布式快照,分布式快照中保存了计算过程中 Operator/task 的中间状态信息(state)。这些非常轻量级的快照会频繁地异步生成,且对系统性能不会产生太大的影响。state 状态信息会持久化到磁盘。如果程序失败,Flink 会根据最新的 checkpoint 数据来重置 Operator,保证系统能够接着失败前的状态再正常运行。所以,我们要说清楚 Flink 的容错机制必须先搞懂 CheckPoint、Barriers、state 这几个概念。

Checkpoint

Checkpoint 是 Flink 实现容错机制的核心,它能够根据配置周期性地基于数据流中各个 Operator/task 的状态来生成快照,从而将这些状态数据定期持久化存储下来,当程序意外崩溃,重新运行程序时可以有选择地从这些快照进行恢复,从而修正因为故障带来的程序数据异常。

Checkpoint 和 Savepoint 的区别?

Checkpoint 是为 runtime 准备的,Savepoint 是为用户准备的。Checkpoint 机制的目标在于保证 Flink 作业意外崩溃重启不影响 exactly once 准确性,通常用于系统容错。而 Savepoint 的目的在于在 Flink 作业维护(比如更新作业代码)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/997461
推荐阅读
相关标签
  

闽ICP备14008679号