2016-12-07 20 views

回答

1

目前(卡夫卡0.10.1),沒有辦法與卡夫卡一起交貨。無論您想要做什麼解決方案,總是會有差距,最終可能會丟失信息或重複信息。

但是,Kafka將添加一個idempotent producer(計劃用於0.10.2),這將允許您避免重複寫入。 0.10.2發佈的目標日期是beginning 2017

+0

它是從卡夫卡的主題將數據導出到數據庫和查詢,以驗證它的存在是一個好主意? –

+0

您也可以通過消費者閱讀數據來驗證它是否存在。但這是非常昂貴和緩慢的。但是,目前沒有好的解決方案能夠提供良好的性能。你將需要等待冪等生產者。要知道,接受重複寫入並相應地設計下游用戶似乎很好,並在那裏過濾出重複項。 –

0

這是不切實際的,你檢查是否每次發送新消息時都會發送相同的消息。換種角度來看:您可以用回調函數調用KafkaProducer.send方法,通知您成功或失敗。

+0

此方法不保存。即使在成功的情況下,如果在成功寫入之後但在觸發回調之前生產者發生故障,那麼可能沒有對生產者的回調。需要降低這一點。將添加一個新的答案。 –

0

這幾乎超出了卡夫卡的範圍。您需要使用不同的存儲來爲隨機訪問提供適當的索引。 根據您的需要,可以是(分佈式)緩存,鍵值存儲或其他。

你可能會想這樣做,對消費端而非生產商,爲不同的消費者可以使用不同的策略進行重複數據刪除(有的消費者可能只是忍受重複)。

+0

問題是關於寫入卡夫卡而不是外部系統。 –

相關問題