目录
在设置完 CheckPoint() 检查点机制后,不设置重启策略的话,,可以无限重启程序,那么设置的检查点机制也就没有什么意义了。因此,在生产实践中,当设置完检查点之后,我们要与之设置好重启策略,一般有三种策略可选。
1、固定延迟重启策略
固定重启,最多重启三次,每次时间间隔 5s env.setRestartStrategy(RestartStrategies.fixedDelayRestart(3, Time.seconds(5)));
在新开的对应端口发送数据:nc -lk 9999
在map方法中添加测试逻辑,当输入A时,启动检查点重启策略,程序重启仍可正常运行
public Tuple2<String, Integer> map(String value) throws Exception { if (value.equals("A")){ int p = 1/0; } return Tuple2.of(value,1); }
再次输入Java后,程序仍在运行,证明重启策略生效。
当输入三次A后,程序跳出,终止运行。
2、失败率重启策略
失败率重启,在一分钟内最多重启三次,每次间隔 2 s
env.setRestartStrategy(RestartStrategies.failureRateRestart(3,Time.minutes(1),Time.seconds(2)));
在新开的对应端口发送数据:nc -lk 9999
在控制台查看运行日志结果得知,当重启三次之后,输入Java仍可进行结果输出,当输入第四次A时候,程序跳出。
3、不重启策略
env.setRestartStrategy(RestartStrategies.noRestart());
在新开的对应端口发送数据:nc -lk 9999
在控制台查看日志信息,输入一次A程序就跳出。