Flink 支援的重啟策略有哪些

奈學教育發表於2020-08-11

Flink支援不同的重啟策略,可以控制在發生故障時如何重啟新啟動作業。


預設重啟策略是透過Flink的配置檔案設定的flink-conf.yaml。配置引數restart-strategy定義採用的策略。


如果未啟用檢查點,則使用“無重啟”策略。如果啟用了檢查點並且尚未配置重啟策略,則固定延遲策略將用於 Integer.MAX_VALUE重啟嘗試。


重啟策略分為:固定延遲重啟策略、故障率重啟策略、無重啟策略、後備重啟策略。


1.固定延遲重啟策略

固定延遲重啟策略是嘗試給定次數重新啟動作業。如果超過最大嘗試次數,則作業失敗。在兩次連續重啟嘗試之間,會有一個固定的延遲等待時間。


透過在flink-conf.yaml中配置引數:


# fixed-delay:固定延遲策略

restart-strategy: fixed-delay


# 嘗試5次,預設Integer.MAX_VALUE

restart-strategy.fixed-delay.attempts: 5


# 設定延遲時間10s,預設為 akka.ask.timeout時間

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


2.故障率重啟策略

故障率重啟策略在故障後重新作業,當設定的故障率(failure rate)超過每個時間間隔的故障時,作業最終失敗。在兩次連續重啟嘗試之間,重啟策略延遲等待一段時間。


在flink-conf.yaml檔案配置


# 設定重啟策略為failure-rate

restart-strategy: failure-rate


# 失敗作業之前的給定時間間隔內的最大重啟次數,預設1

restart-strategy.failure-rate.max-failures-per-interval: 3


# 測量故障率的時間間隔。預設1min

restart-strategy.failure-rate.failure-rate-interval: 5min


# 兩次連續重啟嘗試之間的延遲,預設akka.ask.timeout時間

restart-strategy.failure-rate.delay: 10s

在程式碼中設定:


ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();


// 3為最大失敗次數;5min為測量的故障時間;10s為2次間的延遲時間

env.setRestartStrategy(RestartStrategies.failureRateRestart(3,Time.of(5, TimeUnit.MINUTES),Time.of(10, TimeUnit.SECONDS)));


3.無重啟策略

作業直接失敗,不嘗試重啟。


在flink-conf.yaml中配置:


restart-strategy: none

在程式碼中實現:


ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

env.setRestartStrategy(RestartStrategies.noRestart());


4.後備重啟策略

使用群集定義的重新啟動策略。這對於啟用檢查點的流式傳輸程式很有幫助。預設情況下,如果沒有定義其他重啟策略,則選擇固定延遲重啟策略。

本文來源於:奈學開發者社群,如有侵權,請聯絡我刪除~


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69976011/viewspace-2710962/,如需轉載,請註明出處,否則將追究法律責任。

相關文章