我正在構建一個 Spark Streaming 程式,如果程式無法處理該訊息,我希望它讀取某些訊息并將它們作為“未讀”回傳給主題。
我的意圖是程式最終再次讀取訊息并嘗試處理它。
那可能嗎?
uj5u.com熱心網友回復:
如果您將記錄“回傳”到原始主題,它將被附加到主題的末尾,因此會在下一次投票時再次使用。
這將導致無限消耗回圈(直到將記錄放回的任何條件不再為真)
你所要求的似乎是一個“死信佇列”,它是用不同的主題實作的,而不是原來的。至于如何在 Spark 中處理它,您可能必須維護一些Try物件(Scala)或其他布爾型別,以了解特定事件是否已成功處理;然后filter在寫入任何下游系統之前將其輸出。
例如具有此架構的資料框,您將在生成之前過濾/洗掉第三列
topic - string
value - bytes
hasError - boolean
uj5u.com熱心網友回復:
不,如果你想到 Kafka 抵消,那是不可能的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/427404.html
