Flink,检查点的基本规则?

时间:2019-03-07 13:33:35

标签: apache-flink flink-streaming

关于Flink检查点策略,我有2个问题,

  1. 我知道检查点与状态有关(对吗?),因此,如果我在工作代码中未明确使用状态(ValueState之类的东西),我是否需要关心检查点?还是有必要吗?
  2. 如果需要启用检查点,间隔应该是多少?设置间隔有基本规则吗?假设我们正在谈论一个非常繁忙的系统(Kafka + Flink),每天有数十亿条消息。

非常感谢。

1 个答案:

答案 0 :(得分:1)

即使您没有在应用程序中显式使用状态,Flink的Kafka源连接器和接收器连接器也代表您使用状态,以便为您提供至少一次或完全一次的保证-假设您关心这些保证。另外,其他一些运算符也将代表您以某种方式透明地使用状态,例如Windows和其他流聚合。

如果您的Flink作业失败,那么它将被退回到最近成功的检查点,并从那里继续处理。因此,例如,如果您的检查点间隔为10分钟,那么在恢复之后,您的作业可能需要10分钟以上的数据才能继续处理,然后才能继续处理实时数据。因此,从这个角度选择可以承受的检查点间隔。