【13】Flink 之 Restart Strategies(重启策略)

1、Restart Strategies

  • Flink支持不同的重启策略,以在故障发生时控制作业如何重启
  • 集群在启动时会伴随一个默认的重启策略,在没有定义具体重启策略时会使用该默认策略。 如果在工作提交时指定了一个重启策略,该策略会覆盖集群的 默认策略
  • 默认的重启策略可以通过 Flink 的配置文件 flink-conf.yaml 指定。配置参数 restart-strategy 定义了哪个策略被使用。
  • 常用的重启策略
  1. 固定间隔 (Fixed delay)
  2. 失败率 (Failure rate)
  3. 无重启 (No restart)
  • 如果没有启用 checkpointing ,则使用无重启 (no restart) 策略
  • 如果启用了 checkpointing但没有配置重启策略,则使用固定间隔 (fixed-delay) 策略,其中 Integer.MAX_VALUE 参数是尝试重启次数
  • 重启策略可以在flink-conf.yaml中配置,表示全局的配置。也可以在应用代码中动态指定,会覆盖全局配置

2、三种重启策略

2.1、固定间隔 (Fixed delay)

  • 第一种:全局配置 flink-conf.yaml
  restart-strategy: fixed-delay
  restart-strategy.fixed-delay.attempts: 3
  restart-strategy.fixed-delay.delay: 10 s
  • 第二种:应用代码设置
env.setRestartStrategy(RestartStrategies.fixedDelayRestart( 3, // 尝试重启的次数
  Time.of(10, TimeUnit.SECONDS) // 间隔    ));

2.2、失败率 (Failure rate)

  • 第一种:全局配置 flink-conf.yaml
	restart-strategy: 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

  • 第二种:应用代码设置
env.setRestartStrategy(RestartStrategies.failureRateRestart( 3, // 一个时间段内的最大失败次数
  Time.of(5, TimeUnit.MINUTES), // 衡量失败次数的是时间段
  Time.of(10, TimeUnit.SECONDS) // 间隔
));

2.3、无重启 (No restart)

  • 第一种:全局配置 flink-conf.yaml
restart-strategy: none
  • 第二种:应用代码设置
env.setRestartStrategy(RestartStrategies.noRestart());

下一篇:【14】Flink 之 Window(窗口)


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值