Flink 失败重试策略 :restart-strategy.type

在 Apache Flink 中,restart-strategy.type 用于指定作业的重启策略(Restart Strategy),它决定了作业在失败后如何恢复。

Flink 提供了 4 种内置重启策略 ,可以通过 flink-conf.yaml 或代码动态配置。


1. 可配置的 restart-strategy.type

策略类型 配置值 (restart-strategy.type) 说明
固定延迟重启 fixed-delay 每次失败后固定延迟一段时间重启。
失败阈值重启 failure-rate 在时间窗口内允许一定次数的失败,超过则放弃。
指数延迟重启 exponential-delay 每次失败后延迟时间指数增长(适合短时故障)。
不重启(直接失败) disable, off, none 作业失败后直接终止,不尝试恢复(默认策略)。

2. 详细配置方式

yaml 复制代码
# 固定延迟重启
restart-strategy.type: fixed-delay
restart-strategy.fixed-delay.attempts: 3       # 最大尝试次数
restart-strategy.fixed-delay.delay: 10 s       # 每次重启的延迟时间

# 失败率重启
restart-strategy.type: failure-rate
restart-strategy.failure-rate.max-failures-per-interval: 3  # 时间窗口内允许的失败次数
restart-strategy.failure-rate.failure-rate-interval: 5 min  # 时间窗口长度
restart-strategy.failure-rate.delay: 10 s      # 每次重启的延迟时间

# 指数延迟重启
restart-strategy.type: exponential-delay
restart-strategy.exponential-delay.initial-backoff: 1 s     # 初始延迟
restart-strategy.exponential-delay.max-backoff: 1 min       # 最大延迟
restart-strategy.exponential-delay.backoff-multiplier: 2.0  # 延迟倍数(指数增长)
restart-strategy.exponential-delay.reset-backoff-threshold: 5 min  # 重置延迟的时间窗口
restart-strategy.exponential-delay.jitter-factor: 0.1       # 随机抖动因子(避免集群同时重启)

# 不重启(直接失败) (默认策略)
restart-strategy.type: none

2.2 通过代码动态配置

java 复制代码
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

// 固定延迟重启
env.setRestartStrategy(
    RestartStrategies.fixedDelayRestart(
        3,      // 最大尝试次数
        Time.seconds(10)  // 延迟时间
    )
);

// 失败率重启
env.setRestartStrategy(
    RestartStrategies.failureRateRestart(
        3,              // 时间窗口内允许的失败次数
        Time.minutes(5), // 时间窗口长度
        Time.seconds(10) // 延迟时间
    )
);

// 指数延迟重启
env.setRestartStrategy(
    RestartStrategies.exponentialDelayRestart(
        Time.seconds(1),  // 初始延迟
        Time.minutes(1),  // 最大延迟
        2.0,             // 延迟倍数
        Time.minutes(5),  // 重置延迟的时间窗口
        0.1              // 随机抖动因子
    )
);

// 不重启
env.setRestartStrategy(RestartStrategies.noRestart());

3. 各策略的适用场景

策略 适用场景
fixed-delay 通用场景,适合大多数作业(如短暂网络故障)。
failure-rate 需要严格限制失败次数的场景(如依赖外部服务不可用时快速放弃)。
exponential-delay 短时故障频发时避免雪崩效应(如 Kafka 短暂不可用)。
none 测试环境或无需自动恢复的作业(如一次性批处理任务)。

参考官方文档:

https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/deployment/config/#restart-strategy-type

相关推荐
云老大TG:@yunlaoda360几秒前
如何使用华为云国际站代理商的FunctionGraph进行事件驱动的应用开发?
大数据·数据库·华为云·云计算
yiersansiwu123d4 分钟前
生成式AI重构内容生态,人机协同定义创作新范式
大数据·人工智能·重构
老蒋新思维6 分钟前
创客匠人:从个人IP到知识变现,如何构建可持续的内容生态?
大数据·网络·人工智能·网络协议·tcp/ip·创客匠人·知识变现
Sui_Network28 分钟前
Mysten Labs 与不丹王国政府的创新与技术部携手探索离线区块链
大数据·人工智能·web3·去中心化·区块链
互联科技报30 分钟前
GEO优化工具、AI搜索引擎优化软件平台实测报告:四大平台深度体验与选型指南
大数据·人工智能·搜索引擎
递归尽头是星辰1 小时前
AI 驱动的报表系统:从传统到智能的落地与演进
大数据·人工智能·大模型应用·spring ai·ai 报表·报表智能化
cetcht88881 小时前
35kV-750kV 变电站集中监控系统(涵盖火灾消防、安全防卫、动环、智能锁控、智能巡视等) 设备配置与布置
大数据·运维·物联网·机器人·能源
Elastic 中国社区官方博客1 小时前
通过 Elasticsearch 中的 function score query 按利润和受欢迎程度提升电商搜索效果
大数据·数据库·elasticsearch·搜索引擎·全文检索
Data-Miner1 小时前
165页满分PPT | 某商贸企业数字化蓝图整体规划方案
大数据
CES_Asia1 小时前
政策x技术x市场:三位一体推动机器人产业爆发
大数据·人工智能·科技·机器人