Flink Restart Strategies重啟策略機制深入剖析-Flink牛刀小試
版權宣告:本套技術專欄是作者(秦凱新)平時工作的總結和昇華,通過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和叢集環境容量規劃等內容,請持續關注本套部落格。版權宣告:禁止轉載,歡迎學習。QQ郵箱地址:[email protected],如有任何問題,可隨時聯絡。
寫在前面的話
為什麼老是寫版權宣告?這裡主要是一些垃圾網站如:碼農網等會爬蟲該網頁內容,卻不標明出處,真是令人厭惡,再次強調,各位讀者朋友勿怪!

1 重啟策略總覽
-
Flink支援不同的重啟策略,以在故障發生時控制作業如何重啟 叢集在啟動時會伴隨一個預設的重啟策略,在沒有定義具體重啟策略時會使用該預設策略。 如果在工作提交時指定了一個重啟策略,該策略會覆蓋叢集的預設策略
-
預設的重啟策略可以通過 Flink 的配置檔案 flink-conf.yaml 指定。配置引數 restart-strategy 定義了哪個策略被使用。
-
常用的重啟策略
固定間隔 (Fixed delay)
失敗率 (Failure rate)
無重啟 (No restart)
-
如果沒有啟用 checkpointing,則使用無重啟 (no restart) 策略。
-
如果啟用了 checkpointing,但沒有配置重啟策略,則使用固定間隔 (fixed-delay) 策略,其中 Integer.MAX_VALUE 引數是嘗試重啟次數 重啟策略可以在flink-conf.yaml中配置,表示全域性的配置。也可以在應用程式碼中動態指定,會覆蓋全域性配置
2 重啟策略之固定間隔
-
第一種:全域性配置 flink-conf.yaml
restart-strategy: fixed-delay restart-strategy.fixed-delay.attempts: 3 restart-strategy.fixed-delay.delay: 10 s 複製程式碼
-
第二種:應用程式碼設定
env.setRestartStrategy(RestartStrategies.fixedDelayRestart( // 嘗試重啟的次數 Time.of(10, TimeUnit.SECONDS) // 間隔 )); 複製程式碼