天天看點

Flink 支援的重新開機政策有哪些fixed-delay:固定延遲政策嘗試5次,預設Integer.MAX_VALUE設定延遲時間10s,預設為 akka.ask.timeout時間設定重新開機政策為failure-rate失敗作業之前的給定時間間隔内的最大重新開機次數,預設1測量故障率的時間間隔。預設1min兩次連續重新開機嘗試之間的延遲,預設akka.ask.timeout時間

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

在代碼中實作:

env.setRestartStrategy(RestartStrategies.noRestart());

4.後備重新開機政策

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

本文來源于:奈學開發者社群,如有侵權,請聯系我删除~

繼續閱讀