本文主要是介绍Flink实例(六十四): :Flink的重启策略(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
重启策略
- Flink何时才会重启?
一个拥有检查点的应用如果出现问题,他会经过一些列步骤来进行重启。 - 重启过程中可能会出现的问题?
有些时候,应用可能会被相同的故障不断“杀死”举例:
当我处理数据的时候程序出现了Bug,导致处理算子出现异常,此时程序就会陷入一个循环中:
启动任务、恢复状态、继续处理。
在继续处理的时候,由于这个Bug没有被修复,然后
启动任务、恢复状态、继续处理。
类似于这样周而复始
… …
Q:问题君来了,这里面的“启动任务”我是知道的,后面的“恢复状态”和“继续处理”怎么理解呢?
A:举个例子你Kafka传来的数据是如下格式:
a,1
a,2
我的程序会split(“,”)对其进行拆分,然后按照key对value进行相加
此时输出是:
a,1
a,3
但此时你又传来一条数据aa传来的数据中没有这个逗号,那么我的程序就会报错:java.lang.ArrayIndexOutOfBoundsException: 1
既然报错了,同时因为你有设置检查点,那么此时程序就会重启,
这篇关于Flink实例(六十四): :Flink的重启策略(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!