Flink通過(guò)實(shí)現(xiàn)兩階段提交和狀態(tài)保存來(lái)實(shí)現(xiàn)端到端的一致性語(yǔ)義。
分為以下幾個(gè)步驟:
開(kāi)始事務(wù)( beginTransaction ) 創(chuàng)建一個(gè)臨時(shí)文件夾,來(lái)寫(xiě)把數(shù)據(jù)寫(xiě)入到這個(gè)文件夾里面
預(yù)提交( preCommit ) 將內(nèi)存中緩存的數(shù)據(jù)寫(xiě)入文件并關(guān)閉
正式提交( commit ) 將之前寫(xiě)完的臨時(shí)文件放入目標(biāo)目錄下。
這代表著最終的 數(shù)據(jù)會(huì)有一些延遲
丟棄( abort ) 丟棄臨時(shí)文件 若失敗發(fā)生在預(yù)提交成功后, 正式提交前。 可以根據(jù)狀態(tài)來(lái)提交預(yù)提交的數(shù)據(jù), 也可刪除預(yù)提交的數(shù)據(jù)。