Categories
程式開發

Flink作业问题分析和调优实践


本文主要分享 Flink 的 CheckPoint 机制、反压机制及 Flink 的内存模型。熟悉这3部分内容是调优的前提,文章主要从以下几个方面分享:

  1. 原理剖析
  2. 性能定位
  3. 经典场景调优
  4. 内存调优

Checkpoint 机制

1.什么是 checkpoint

简单地说就是 Flink 为了达到容错和 exactly-once 语义的功能,定期把 state 持久化下来,而这一持久化的过程就叫做 checkpoint ,它是 Flink Job 在某一时刻全局状态的快照。

当我们要对分布式系统实现一个全局状态保留的功能时,传统方案会引入一个统一时钟,通过分布式系统中的 master 节点广播出去给每一个 slaves 节点,当节点接收到这个统一时钟时,它们就记录下自己当前的状态即可。

Flink作业问题分析和调优实践 1

但是统一时钟的方式也存在一定的问题,某一个 node 进行的 GC 时间比较长,或者 master 与 slaves 的网络在当时存在波动而造成时钟的发送延迟或者发送失败,都会造成此 slave 和其它的机器出现数据不一致而最终导致脑裂的情况。如果我们想要解决这个问题,就需要对 master 和 slaves 做一个 HA(High Availability)。但是,一个系统越是复杂,就越不稳定且维护成本越高。

原文链接:【https://www.infoq.cn/article/J1UCFxizcrIDMhtFvWt6】。未经作者许可,禁止转载。