[Flink/CDC/savepoint] Flink Job 保存點(diǎn)機(jī)制
Flink Job 保存點(diǎn)的試驗(yàn)總結(jié)
試驗(yàn)1
配置 主流的 mysql cdc 的 startoptions = initial
停止 Job 時(shí):
主動(dòng)勾選:保存到保存點(diǎn)
停止后:
保存點(diǎn): test-flink-runtime/jobs/savepoint/230445/2025-08-08_16-52-18/savepoint-c7115a-4294a042693e/_metadata
啟動(dòng)時(shí)
主動(dòng)勾選:從保存點(diǎn)恢復(fù)
啟動(dòng)后
各個(gè)算子 發(fā)送的記錄數(shù)、接受的記錄數(shù):會(huì)從 0 開始重新計(jì)數(shù)( 即使源有數(shù)據(jù),只要啟動(dòng)后沒有新增的、或 update,就應(yīng)該會(huì)一直為 0 ),而非從停止前的數(shù)據(jù)開始計(jì)數(shù)。
保存點(diǎn)會(huì)被自動(dòng)刪除掉
試驗(yàn)2
配置 主流的 mysql cdc 的 startoptions = initial
停止 Job 時(shí),主動(dòng)勾選:保存到保存點(diǎn)
保存點(diǎn):
test-flink-runtime/jobs/savepoint/230445/2025-08-08_16-52-18/savepoint-c7115a-4294a042693e/_metadata
啟動(dòng)時(shí)
不勾選:從保存點(diǎn)恢復(fù)
啟動(dòng)后:
各個(gè)算子 發(fā)送的記錄數(shù)、接受的記錄數(shù):會(huì)從 0 開始重新計(jì)數(shù)(會(huì)從0開始消費(fèi)數(shù)據(jù),只要源有數(shù)據(jù),就不會(huì)一直為0),而非從停止前的數(shù)據(jù)開始計(jì)數(shù)。
保存點(diǎn)會(huì)被自動(dòng)刪除掉
試驗(yàn)3
配置 主流的 mysql cdc 的 startoptions = latest
停止 Job 時(shí):
主動(dòng)勾選:保存到保存點(diǎn)
停止后:
保存點(diǎn): test-flink-runtime/jobs/savepoint/230445/2025-08-08_16-52-18/savepoint-c7115a-4294a042693e/_metadata
啟動(dòng)時(shí)
主動(dòng)勾選:從保存點(diǎn)恢復(fù)
啟動(dòng)后
各個(gè)算子 發(fā)送的記錄數(shù)、接受的記錄數(shù):會(huì)從 0 開始重新計(jì)數(shù)( 即使源有數(shù)據(jù),只要啟動(dòng)后沒有新增的、或 update,就應(yīng)該會(huì)一直為 0 ),而非從停止前的數(shù)據(jù)開始計(jì)數(shù)。
保存點(diǎn)會(huì)被自動(dòng)刪除掉
試驗(yàn)4
配置 主流的 mysql cdc 的 startoptions = latest
停止 Job 時(shí),主動(dòng)勾選:保存到保存點(diǎn)
保存點(diǎn):
test-flink-runtime/jobs/savepoint/230445/2025-08-08_16-52-18/savepoint-c7115a-4294a042693e/_metadata
啟動(dòng)時(shí)
不勾選:從保存點(diǎn)恢復(fù)
啟動(dòng)后:
各個(gè)算子 發(fā)送的記錄數(shù)、接受的記錄數(shù):會(huì)從 0 開始重新計(jì)數(shù)(即使源有數(shù)據(jù),只要啟動(dòng)后沒有新增的、或 update,就應(yīng)該會(huì)一直為 0),而非從停止前的數(shù)據(jù)開始計(jì)數(shù)。
保存點(diǎn)會(huì)被自動(dòng)刪除掉
試驗(yàn)5
配置 主流的 mysql cdc 的 startoptions = initial
停止 Job 時(shí),不主動(dòng)勾選:保存到保存點(diǎn)
保存點(diǎn):
--
啟動(dòng)時(shí)
[X,沒有此選項(xiàng)] 從保存點(diǎn)恢復(fù)
啟動(dòng)后:
各個(gè)算子 發(fā)送的記錄數(shù)、接受的記錄數(shù):會(huì)從 0 開始重新計(jì)數(shù)(會(huì)從0開始消費(fèi)數(shù)據(jù),只要源有數(shù)據(jù),就不會(huì)一直為0),而非從停止前的數(shù)據(jù)開始計(jì)數(shù)。
保存點(diǎn)會(huì)被自動(dòng)刪除掉
試驗(yàn)6
配置 主流的 mysql cdc 的 startoptions = latest
停止 Job 時(shí),不主動(dòng)勾選:保存到保存點(diǎn)
保存點(diǎn):
--
啟動(dòng)時(shí)
[X,沒有此選項(xiàng)] 從保存點(diǎn)恢復(fù)
啟動(dòng)后:
各個(gè)算子 發(fā)送的記錄數(shù)、接受的記錄數(shù):會(huì)從 0 開始重新計(jì)數(shù)(即使源有數(shù)據(jù),只要啟動(dòng)后沒有新增的、或 update,就應(yīng)該會(huì)一直為 0),而非從停止前的數(shù)據(jù)開始計(jì)數(shù)。
保存點(diǎn)會(huì)被自動(dòng)刪除掉
FAQ for Flink 保存點(diǎn)機(jī)制
Q: Flink 保存點(diǎn)與檢查點(diǎn)的關(guān)系與區(qū)別?
-
Flink中的檢查點(diǎn)用于【容錯(cuò)恢復(fù)】,而【保存點(diǎn)】則用于【手動(dòng)維護(hù)和升級(jí)】,二者在觸發(fā)方式和使用場景上有顯著區(qū)別。
-
檢查點(diǎn)(Checkpoint)
- 定義:檢查點(diǎn)是Flink實(shí)現(xiàn)容錯(cuò)機(jī)制的核心功能,能夠周期性地生成作業(yè)狀態(tài)的快照,并將其持久化存儲(chǔ)。當(dāng)Flink程序意外崩潰時(shí),可以從最近的檢查點(diǎn)恢復(fù)狀態(tài),確保作業(yè)的準(zhǔn)確性和一致性。
- 觸發(fā)方式:檢查點(diǎn)是自動(dòng)觸發(fā)的,通常由Flink的TaskManager定期執(zhí)行,用戶無需干預(yù)。可以通過配置設(shè)置檢查點(diǎn)的時(shí)間間隔和模式。
- 存儲(chǔ)格式:檢查點(diǎn)的存儲(chǔ)格式較輕量級(jí),支持增量存儲(chǔ),適合頻繁生成以降低恢復(fù)時(shí)間。
- 使用場景:主要用于處理意外失敗后的自動(dòng)恢復(fù),確保作業(yè)的連續(xù)性和數(shù)據(jù)的準(zhǔn)確性。
- 保存點(diǎn)(Savepoint)
- 定義:保存點(diǎn)是通過檢查點(diǎn)機(jī)制創(chuàng)建的,表示作業(yè)狀態(tài)的完整快照,通常用于手動(dòng)干預(yù)和維護(hù)。
- 觸發(fā)方式:保存點(diǎn)是用戶手動(dòng)觸發(fā)的,適用于需要進(jìn)行作業(yè)升級(jí)、遷移或A/B測試等場景。用戶可以根據(jù)需要選擇何時(shí)創(chuàng)建保存點(diǎn)。
- 存儲(chǔ)格式:保存點(diǎn)以二進(jìn)制形式存儲(chǔ)所有狀態(tài)數(shù)據(jù)和元數(shù)據(jù),執(zhí)行速度較慢,但支持在代碼升級(jí)或并行度變化后恢復(fù)。
- 使用場景:適用于需要人工干預(yù)的場景,如作業(yè)升級(jí)、遷移或進(jìn)行A/B測試時(shí),確保狀態(tài)的完整性和可恢復(fù)性。
- 總結(jié)
- 容錯(cuò) vs 維護(hù):檢查點(diǎn)側(cè)重于容錯(cuò),確保在意外失敗后能夠快速恢復(fù);而保存點(diǎn)則側(cè)重于維護(hù),允許用戶在進(jìn)行手動(dòng)操作時(shí)保存狀態(tài)并恢復(fù)。
- 自動(dòng) vs 手動(dòng):檢查點(diǎn)是自動(dòng)生成的,頻率較高;保存點(diǎn)則是手動(dòng)觸發(fā)的,適合特定的維護(hù)需求。
通過理解這兩者的區(qū)別,用戶可以更有效地管理Flink作業(yè)的狀態(tài)和恢復(fù)策略。
X 參考文獻(xiàn)
本文作者:
千千寰宇
本文鏈接: http://www.rzrgm.cn/johnnyzen
關(guān)于博文:評(píng)論和私信會(huì)在第一時(shí)間回復(fù),或直接私信我。
版權(quán)聲明:本博客所有文章除特別聲明外,均采用 BY-NC-SA 許可協(xié)議。轉(zhuǎn)載請注明出處!
日常交流:大數(shù)據(jù)與軟件開發(fā)-QQ交流群: 774386015 【入群二維碼】參見左下角。您的支持、鼓勵(lì)是博主技術(shù)寫作的重要?jiǎng)恿Γ?
本文鏈接: http://www.rzrgm.cn/johnnyzen
關(guān)于博文:評(píng)論和私信會(huì)在第一時(shí)間回復(fù),或直接私信我。
版權(quán)聲明:本博客所有文章除特別聲明外,均采用 BY-NC-SA 許可協(xié)議。轉(zhuǎn)載請注明出處!
日常交流:大數(shù)據(jù)與軟件開發(fā)-QQ交流群: 774386015 【入群二維碼】參見左下角。您的支持、鼓勵(lì)是博主技術(shù)寫作的重要?jiǎng)恿Γ?

浙公網(wǎng)安備 33010602011771號(hào)