请问Flink在重启时,是否有重启之前提交的任务也重启的功能?目前有多个任务,在遇到停电等导致服务器停止运行的情况后,虽然Flink服务能够自动启动,但之前提交的多个任务却没有了。
Flink具有强大的故障恢复机制,其中包括重启策略和故障恢复策略。重启策略决定了作业是否可以被重启以及重启的间隔,而故障恢复策略则决定哪些任务需要被重启。
当Flink作业中的一个或多个任务失败时,例如由于输入数据错误、计算逻辑问题或资源限制,Flink会尝试自动重启这些任务。特别是,Flink提供了灵活的重启策略配置,允许用户指定重启的次数和间隔。例如,固定延迟重启策略允许设置尝试重启的次数和每次重启之间的延迟。此外,还有快速重启Task的配置,这可以在Task异常时只重启失败的Task,避免因非Source Task异常导致的整个作业重新消费数据的情况。
如果您在停电后重新启动了Flink,并且希望作业中的任务也一起重启,那么您需要确保:
如果上述条件都满足,并且在Flink集群启动时加载了适当的重启策略和故障恢复策略,那么提交到Flink的任务应该会自动 restart。不过,建议在实际生产环境中密切监控任务的状态和日志,以确保作业的成功恢复。
基于checkpoint重启,或者捕获异常,基于binlog重启 ,此回答整理自钉群“【③群】Apache Flink China社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。