Flink 容錯機制

2021-10-19 05:13:14 字數 1791 閱讀 8986

flink使用的是基於chandy-lamport演算法的分布式快照

chandy-lamport algorithm 有興趣的同學可以看看。

檢查點配置**:

streamexecutionenvironment env = streamexecutionenvironment.

getexecutionenvironment()

;// 檢查點配置

env.

enablecheckpointing

(300);

// 高階選項

// 設定檢查點策略 exactly_once / at_least_once

env.

getcheckpointconfig()

.setcheckpointingmode

(checkpointingmode.exactly_once)

;// 檢查點超時時間

env.

getcheckpointconfig()

.setcheckpointtimeout

(1000l)

;// 設定可能同時進行的最大檢查點嘗試次數。

env.

getcheckpointconfig()

.setmaxconcurrentcheckpoints(2

);// 設定兩次檢查點嘗試之間的最小暫停時間

env.

getcheckpointconfig()

.setminpausebetweencheckpoints

(100l)

;// 設定是否有較新的儲存點時作業恢復是否應回退到檢查點。flink 1-12.0中已過期

env.

getcheckpointconfig()

.setprefercheckpointforrecovery

(true);

// 設定可容忍的檢查點失敗次數,預設值為0,表示

env.

getcheckpointconfig()

.settolerablecheckpointfailurenumber(0

);// 重啟策略配置

// 固定延遲重啟

env.

setrestartstrategy

(restartstrategies.

fixeddelayrestart(3

,10000l));

// 失敗率重啟

env.

setrestartstrategy

(restartstrategies.

failureraterestart(3

, time.

minutes(10

),time.

minutes(1

)));

Flink容錯機制

所謂的distributed snapshot,就是為了儲存分布式系統的state,那麼首先我們需要定義清楚什麼是分布式系統的state。考慮到上述分布式模型的定義,分布式系統state同樣是由 程序狀態 和 通道狀態 組成的。在某乙個時刻的某分布式系統的所有程序和所有通道狀態的組合,就是這個分布式...

Flink之四 容錯機制

批處理系統比較容易實現容錯機制,由於檔案可以重複訪問,當某個任務失敗後,重啟該任務即可。但是在流處理系統中,由於資料來源是無限的資料流,乙個流處理任務甚至可能會執行幾個月,將所有資料快取或是持久化,留待以後重複訪問基本上是不可行的。flink基於分布式快照與可部分重發的資料來源實現了容錯,使用者可自...

Flink狀態管理和容錯機制介紹

1.1什麼是有狀態的計算 計算任務的結果不僅僅依賴於輸入,還依賴於它的當前狀態,其實大多數的計算都是有狀態的計算。比如wordcount,給一些word,其計算它的count,這是乙個很常見的業務場景。count做為輸出,在計算的過程中要不斷的把輸入累加到count上去,那麼count就是乙個sta...