Flink重啓策略 flink出現異常從新拉起任務

重啓策略概念:

Flink支持不一樣的重啓策略,能夠控制在發生故障時如何重啓新啓動做業。mysql

重啓策略分類:

重啓策略 重啓策略值 描述 默認值
Fixed delay fixed-delay 嘗試一個給定的次數來重啓Job,若是超過了最大的重啓次數,Job最終將失敗。 啓用 checkpointing,但沒有配置重啓策略,則使用固定間隔 (fixed-delay) 策略,默認值爲Integer.MAX_VALUE
Failure rate failure-rate 失敗率重啓策略在Job失敗後會重啓,可是超過失敗率後,Job會最終被認定失敗。  
No restart None Job直接失敗,不會嘗試進行重啓 沒有啓用 checkpointing,則使用無重啓 (no restart) 策略

 

 

 

 

 

 

 

 

重啓策略核心點:

1)重啓策略,都有重試次數和重試之間等待時間的規定,不一樣點在於,分別限定了最大的失敗次數和規定時間內失敗次數。具體根據場景設置sql

2)重啓策略開啓後,若是程序有異常出現,多數狀況會出現與第三方交互的地方鏈接異常狀況,相似mysql kafka等鏈接失敗,沒有必定經驗很差定位問題。ide

重啓策略設置:

固定間隔策略:

1 全局配置 flink-conf.yaml,表示每10s重試一次,最多重試3次spa

restart-strategy: fixed-delay 
restart-strategy.fixed-delay.attempts: 3 
restart-strategy.fixed-delay.delay: 10 s

2 應用代碼設置:rest

env.setRestartStrategy(RestartStrategies.fixedDelayRestart( 
    3, // 嘗試重啓的次數 
    Time.of(10, TimeUnit.SECONDS)) // 間隔 
);

失敗率策略:

1 全局配置 flink-conf.yaml,5分鐘內若失敗了3次則認爲該job失敗,重試間隔爲10scode

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

2 應用代碼設置:blog

env.setRestartStrategy(RestartStrategies.failureRateRestart(  
    3, //一個時間段內的最大失敗次數  
    Time.of(5, TimeUnit.MINUTES), // 衡量失敗次數的是時間段  
    Time.of(10, TimeUnit.SECONDS)) // 間隔  
);

無策略:

1全局配置 flink-conf.yamlget

restart-strategy: none

2 應用代碼設置:kafka

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.setRestartStrategy(RestartStrategies.noRestart());
相關文章
相關標籤/搜索