1

我想知道什麼對我最好:卡夫卡流或卡夫卡消費者API或卡夫卡連接?我應該使用什麼:卡夫卡流或卡夫卡消費者API或卡夫卡連接

我想從主題讀取數據,然後做一些處理並寫入數據庫。所以我寫了消費者,但我覺得我可以編寫Kafka流應用程序,並使用它的有狀態處理器執行任何更改並將其寫入數據庫,這可以消除我的使用者代碼,並且只需編寫db代碼。

數據庫我想插入我的記錄是: HDFS - (插入生JSON) MSSQL - (處理JSON)

另一種選擇是卡夫卡連接,但我發現沒有JSON支持,目前爲hdfs接收器和jdbc接收器連接器(我不想寫在avro中)並且創建模式也是複雜的嵌套消息的痛苦。

或者我應該寫自定義卡夫卡連接來做到這一點。

因此,需要您對我是否應該寫卡夫卡消費者或卡夫卡流或卡夫卡連接的意見? 在性能方面什麼會更好,開銷更少?

回答

1

歡迎來到堆棧溢出!請採取兜售https://stackoverflow.com/tour

請提出具體問題,而不是要求意見 - 這使得網站更清晰,意見不是答案(並受每個人的喜好)。詢問「如何使用Kafka連接json」 - 或者這樣可以適應這個網站。

此外,請展示一些研究。


少的開銷將是卡夫卡的消費者 - 卡夫卡流和卡夫卡連接使用卡夫卡消費者,讓你隨時都可以用更少的開銷,而且也將失去所有的福利(寬容失敗,易使用的,支持等)

首先,它取決於你的處理。聚合?數數?驗證?然後,您可以使用kafka流進行處理並將結果寫入所需格式的新主題。

然後,您可以使用kafka connect將數據發送到您的數據庫。你是不是被迫使用Avro的,您可以使用鍵/值等格式,請參閱

Kafka Connect HDFS Sink for JSON format using JsonConverter

Kafka Connect not outputting JSON

+0

我曾嘗試HDFS宿JSON,但不能使用** org.apache。 kafka.connect.json.JsonConverter **但是當我** org.apache.kafka.connect.storage.StringConverter **它可以工作,但是它以字符串轉義格式寫入json對象。 例如。 ** {「name」:「hello」} **被寫入hdfs中作爲**「{\」name \「:\」hello \「}」** –

+0

所以我需要有人專家來建議我是否應該寫同樣的與kafka消費者或kafka流或自定義kafka連接。 –

+0

我想要做的處理是基本驗證和少量字段值轉換。 –