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