我的春季批處理在讀取步驟中從資料庫中讀取數百萬行,并在寫入步驟中將其發布到 kafka 主題。
在我作業的公司中,我們正在使用 kafka 的包裝器,我目前正在呼叫 sendAsync() 方法,該方法接收 eventSupplier 訊息和回呼:org.apache.kafka.clients.producer.Callback
我的問題是,因為它是一個批處理,所以我擔心作業執行會在我得到關于以異步模式發送的所有訊息的指示之前結束。(也許在最后一個訊息中拋出了例外)
是否有彈簧批處理平臺支持的方式來確保步驟完成?還是我應該在寫入步驟中實作 Future.isDone() ?我在春季批處理檔案中看到有一個 KafkaItemWriter 我應該在我的情況下使用它嗎?我目前正在實施 ItemWriter 謝謝。
uj5u.com熱心網友回復:
Spring Batch 提供的KafkaItemWriter等待異步呼叫回傳(直到可配置的超時)。這是為了確保寫入操作成功或失敗。
如果您正在撰寫 custom ItemWriter
,您可以從中獲得靈感。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453708.html
上一篇:結合兩個流和呼叫方法