
# 配置FlinkServer重启策略
#### 概述
Flink支持不同的重启策略，以在发生故障时控制作业是否重启以及如何重启。若不指定重启策略，集群会使用默认的重启策略。用户也可以在提交作业时指定一个重启策略，可参考[创建FlinkServer作业](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_24024.html)在作业开发界面配置（MRS 3.1.0及以后版本）。
重启策略也可以通过Flink的配置文件"*客户端安装目录*/Flink/flink/conf/flink-conf.yaml"中的参数"restart-strategy"指定，为全局配置，还可以在应用代码中动态指定，会覆盖全局配置，重启策略包括失败率（failure-rate）和两种默认策略，默认策略为如下：
- 无重启（No restart）：若没有启用CheckPoint，默认使用该策略。
- 固定间隔（fixed-delay）：若启用了CheckPoint，但没有配置重启策略，默认使用该策略。
 
#### No restart策略
发生故障时作业会直接失败，不会尝试重启。
参数配置为：
```
restart-strategy: none
```
#### fixed-delay策略
发生故障时会尝试重启作业固定次数，如果超过了最大的尝试次数，作业最终会失败。并且在两次连续重启尝试之间，重启策略会等待固定的时间。
以配置若重启失败了3次则认为该Job失败，重试时间间隔为10s为例，参数配置为：
```
restart-strategy: fixed-delay
restart-strategy.fixed-delay.attempts: 3
restart-strategy.fixed-delay.delay: 10 s
```
#### failure-rate策略
在作业失败后会直接重启，但超过设置的失败率后，作业会被认定为失败。在两个连续的重启尝试之间，重启策略会等待一个固定的时间。
以配置10分钟内若重启失败了3次则认为该作业失败，重试时间间隔为10s为例，参数配置为：
```
restart-strategy: failure-rate
restart-strategy.failure-rate.max-failures-per-interval: 3
restart-strategy.failure-rate.failure-rate-interval: 10 min
restart-strategy.failure-rate.delay: 10 s
```
#### 重启策略选择
- 如果用户在作业失败后，不希望重试，则推荐使用No restart策略。
- 如果用户在作业失败后，希望对作业进行重试，推荐使用failure-rate策略。因为fixed-delay策略可能会因为网络、内存等硬件故障导致用户作业失败次数达到最大重试次数，从而导致作业失败。 为了防止在failure-rate策略下的无限重启，推荐如下参数配置：
  ```
  restart-strategy: failure-rate
  restart-strategy.failure-rate.max-failures-per-interval: 3
  restart-strategy.failure-rate.failure-rate-interval: 10 min
  restart-strategy.failure-rate.delay: 10 s
  ```
  
 
