AWS KCL庫中的檢查點和修剪如何相關?Amazon KCL檢查點和修剪Horizon
文檔頁面處理啓動,關機和節流說:
默認情況下,KCL開始從 流,其是最近添加的記錄尖閱讀記錄。在此 配置中,如果數據生成應用程序在任何接收記錄處理器正在運行之前向 流添加記錄,則記錄處理器在啓動後不會讀取記錄 。
要改變記錄處理器的行爲,以便它總是 從流的開始讀取數據,設置以下值 在屬性文件中爲你的亞馬遜的Kinesis流的應用:
initialPositionInStream = TRIM_HORIZON
文檔頁面在Java中開發亞馬遜的Kinesis客戶端庫消費者說:
流需要記錄處理器跟蹤已在碎片中處理過的記錄 。 KCL通過將檢查指針 (IRecordProcessorCheckpointer)傳遞給processRecords來爲您處理 此跟蹤。記錄處理器 調用此接口上的檢查點方法,以通知KCL在處理碎片中的記錄時已經取得的進展。在工作人員失敗的 事件中,KCL使用此信息重新啓動 處理最後一次已知處理記錄中的分片。
第一頁似乎說,KCL恢復在流的末端,在最後一個已知處理的記錄的第二頁(這是在checkpointer
標記爲通過使用RecordProcessor
處理)。就我而言,我絕對需要在最後一次已知處理記錄中重新啓動。我是否需要將initialPositionInStream設置爲TRIM_HORIZON?
謝謝,所以在現實中,initialPositiionInStream適用於確定如果沒有chekpoint可用時開始的值? – Edmondo1984
是的,當您的KCL沒有保存檢查點時使用它。 –