
# 配置Flink作业重启策略
#### 操作场景
Flink支持不同的重启策略，以在发生故障时控制是否重启以及如何重启Flink作业。根据具体的使用场景选择合适的重启策略，可以有效提高Flink作业的稳定性和可靠性，确保在故障发生时能够及时恢复，同时避免不必要的资源消耗。
重启策略包括无重启（No restart）、固定间隔（fixed-delay）和失败率（failure-rate）策略。
- 无重启（No restart）：发生故障时作业会直接失败，不会尝试重启。
- 固定间隔（fixed-delay）：发生故障时会尝试重启作业固定次数，如果超过了最大的尝试次数，作业最终会失败。并且在两次连续重启尝试之间，重启策略会等待固定的时间。
- 失败率（failure-rate）：在作业失败后会直接重启，但超过设置的失败率后，作业会被认定为失败。在两个连续的重启尝试之间，重启策略会等待一个固定的时间。
**在FlinkServer平台作业开发界面配置的重启策略优先级高，如果作业开发界面没有配置重启策略，Flink配置界面的重启策略才会生效。**
#### 如何选择重启策略
- 如果用户在作业失败后，不希望重试，则推荐使用No restart策略。
- 如果用户在作业失败后，希望对作业进行重试，推荐使用failure-rate策略。因为fixed-delay策略可能会因为网络、内存等硬件故障导致用户作业失败次数达到最大重试次数，从而导致作业失败。
 
#### 在FlinkServer平台作业开发界面配置重启策略
1. 使用具有FlinkServer管理员权限的用户，登录Manager界面，选择"集群 \> 服务 \> Flink"，在"Flink WebUI"右侧，单击链接，访问Flink的WebUI。
2. 单击"作业管理"进入作业管理页面。
3. 在FlinkServer作业管理界面，可参考[集群连接模式创建Flink SQL作业](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24024.html)选择已有作业或新建作业，进入作业开发界面。
4. 在作业开发界面的"基础参数 \> 故障恢复策略"下拉框中选择对应策略，并配置对应参数。 
   - fixed-delay：需配置"重试次数"和"失败重试间隔（s）"。
   
   - failure-rate：需配置"最大重试次数"、"时间间隔（min）"和"失败重试间隔（s）"。
   
   - none：无需配置其他参数。
   
   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002319549966.png "点击放大")
   
   
 
#### 在Flink配置界面配置重启策略
1. 登录Manager界面，选择"集群 \> 服务 \> Flink \> 配置 \>全部配置"。
2. 在搜索框输入"restart-strategy"，查看重启策略的配置。 
   1. **No restart策略**
      发生故障时作业会直接失败，不会尝试重启。
      参数配置为：
      ```
      restart-strategy: none
      ```
      
   
   2. **fixed-delay策略**
      发生故障时会尝试重启作业固定次数，如果超过了最大的尝试次数，作业最终会失败。并且在两次连续重启尝试之间，重启策略会等待固定的时间。
      以配置若重启失败了3次则认为该Job失败，重试时间间隔为10s为例，参数配置为：
      ```
      restart-strategy: fixed-delay
      restart-strategy.fixed-delay.attempts: 3
      restart-strategy.fixed-delay.delay: 10 s
      ```
      
   
   3. **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
      ```
      
   
   
   
   
3. 若不指定重启策略，集群会使用默认的重启策略。默认重启策略如下（fixed-delay策略）： 
   ```
   restart-strategy: fixed-delay 
   restart-strategy.fixed-delay.attempts: 3 
   restart-strategy.fixed-delay.delay: 10 s
   ```
   
   
4. 若需要调整重启策略，勾选需要的重启策略，单击"保存"。选择"实例 \> 勾选需要重启的实例 \> 更多 \> 重启实例"，实例重启成功后指定的重启策略生效。
 
#### 相关文档
如果需要创建FlinkServer作业，请参见[创建FlinkServer作业](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24024.html)。
