流处理:检查点应多久启动一次?



我正在使用Apache Flink设置一个分析管道来处理物联网数据流。在尝试配置系统时,我似乎找不到任何关于应该多久启动一次检查点的来源?是否有任何建议或硬性经验法则?例如 1 秒、10 秒、1 分钟等?

编辑:另外,有没有办法在运行时以编程方式配置检查点间隔?

这取决于两件事:

如果
  • 发生故障,您愿意重新处理多少数据(作业将从上次完成的检查点重新启动(?
  • 由于数据传输限制和检查点本身的持续时间,您多久可以检查一次?

根据我的经验,大多数用户使用10秒左右的检查点间隔,但也配置了"检查点之间的分钟暂停"[1]。

[1] https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/state/checkpointing.html#enabling-and-configuring-checkpointing

除了已经提到的内容之外,还有一件事需要考虑:如果您依赖于事务接收器来获得恰好一次的语义,那么这些事务将作为完成每个检查点的一部分提交。这意味着这些事务的任何下游使用者都将遇到延迟,延迟或多或少由作业的检查点间隔决定。

相关内容

  • 没有找到相关文章

最新更新