Flink源码分析- 高可用
心跳
ResourceManager,TaskManager,JobManager会通过心跳来监测相互之间的状态
高可用服务
Leader选举和提取。只有配置了Zookeeper才是真正的高可用
重启策略
当任务因为异常退出执行时,此次任务状态就会切换为失败状态。
当TaskManager进程因为异常退出时,JobManager可以通过心跳服务监测到来重启服务。
重启策略有:
- 不重启
- 重启n次,每次延迟一定时间
状态恢复
StreamTask在invoke()
方法被调用时,会执行initializeState()
来初始化算子中的状态,如果UserFunction实现了restoreState()
方法,也会在这个过程中被调用来恢复之前的状态。