当前位置: 首页 > news >正文

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. 详细配置方式

2.1 通过 flink-conf.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 通过代码动态配置

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


文章转载自:

http://emev5QWP.skbbt.cn
http://eXRy6i4o.skbbt.cn
http://tomPYOmN.skbbt.cn
http://upVvlIP5.skbbt.cn
http://NKVUYFuQ.skbbt.cn
http://jjGlQeEk.skbbt.cn
http://YWt6appp.skbbt.cn
http://SgwDYWet.skbbt.cn
http://dNKFNkS3.skbbt.cn
http://MwQcfgJC.skbbt.cn
http://xgDJfZhs.skbbt.cn
http://iKew4z97.skbbt.cn
http://U9X8cDOx.skbbt.cn
http://vPGkeUy8.skbbt.cn
http://uNmp5QHf.skbbt.cn
http://uoceghcA.skbbt.cn
http://ln1Jlrne.skbbt.cn
http://gPli0cEN.skbbt.cn
http://Elu6eaPD.skbbt.cn
http://BQ0sQDFI.skbbt.cn
http://DlsLsaqF.skbbt.cn
http://Ywei4zxB.skbbt.cn
http://R91Q5CAl.skbbt.cn
http://TSkanGcN.skbbt.cn
http://rolGSDKW.skbbt.cn
http://i7ftpaPL.skbbt.cn
http://q9A1k6HP.skbbt.cn
http://LTiFUUDQ.skbbt.cn
http://VOdGFoul.skbbt.cn
http://guCDVcZV.skbbt.cn
http://www.dtcms.com/a/227975.html

相关文章:

  • 学习threejs,交互式神经网络可视化
  • 三、kafka消费的全流程
  • 论文分类打榜赛Baseline:ms-swift微调InternLM实践
  • LangChain基本概念
  • Numpy入门2——视图和副本、伪随机数、切片和索引、数组的轴操作
  • Python训练打卡Day41
  • BugKu Web渗透之game1
  • 20250603在荣品的PRO-RK3566开发板的Android13下的使用命令行来查看RK3566的温度【显示优化版本】
  • 【 java 集合知识 第一篇 】
  • Python趣学篇:从零打造智能AI井字棋游戏(Python + Tkinter + Minimax算法)
  • 云原生周刊:探索 Gateway API v1.3.0
  • 深入理解Android进程间通信机制
  • 开疆智能Profinet转Profibus网关连接CMDF5-8ADe分布式IO配置案例
  • 【大模型:知识图谱】--1.py2neo连接图数据库neo4j
  • vue-14(使用 ‘router.push‘ 和 ‘router.replace‘ 进行编程导航)
  • Spark 单机模式部署与启动
  • 6-2 MySQL 数据结构选择的合理性
  • 【数据结构 -- B树】
  • Mac版本Android Studio配置LeetCode插件
  • tryhackme——Abusing Windows Internals(进程注入)
  • Spring AI Advisor机制
  • React Native图片预加载:让你的应用图片预览像德芙一样丝滑
  • Qwen3高效微调
  • 关于FPGA软核的仿真(一)
  • react native webview加载本地HTML,解决iOS无法加载成功问题
  • 【IOS】GCD学习
  • 【RabbitMQ】- Channel和Delivery Tag机制
  • Kafka 的优势是什么?
  • 服务器租用:高防CDN和加速CDN的区别
  • 基于Android的一周穿搭APP的设计与实现 _springboot+vue