0

我做了一個poc,使用火花流從卡夫卡讀取數據。但是我們的組織正在使用Apache Flink或Kafka使用者從Apache kafka讀取數據作爲標準過程。所以我需要用Kafka消費者或Apache Flink替換Kafka流媒體。在我的應用程序用例中,我需要從kafka讀取數據,過濾json數據並將字段放在cassandra中,所以建議使用Kafka使用者而不是flink /其他流,因爲我不需要使用Kafka進行任何處理json數據。所以,我需要你的幫助來了解以下問題:Kafka Consumer Vs Apache Flink

  1. 使用卡夫卡消費者,我可以達到讀取相同的連續數據,我們在火花流或弗林克的情況下怎麼辦?

  2. 卡芙卡消費者是否足夠考慮我需要從卡夫卡讀取數據,使用avro scehma進行反序列化,過濾字段並放入卡桑德拉?

  3. 卡夫卡消費者應用程序可以使用卡夫卡消費者API創建,對吧?

  4. 如果我只是使用卡夫卡消費者而不是Apache flink,那麼在我的情況下是否有任何不利因素?

+0

您還應該考慮使用Kafka的Streams API。這比Kafka的消費者API強大得多。 https://kafka.apache.org/0102/documentation/streams和http://docs.confluent.io/current/streams/ –

+0

你打算如何部署你的應用程序?是否有任何系統已經在您的組織中部署「東西」? 該系統的長期計劃是什麼?你打算繼續使用它只是爲了攝入卡桑德拉,還是有計劃對流中的數據進行任何計算? –

+0

@rmetzger:計劃將其部署到消費者API作業可以運行的獨立羣集上。我們沒有任何現有的系統部署東西,它會創造新的環境。想法是隻讀取來自kafka的數據,使用avro轉換成json,過濾需要的字段並存儲到cassandra中,不進行計算。您的建議將會有所幫助。 –

回答

1

首先,讓我們來看看Flinka Kafak ConnectorSpark Streaming with Kafka,他們都使用Kakfa消費者API(無論是簡單的API或高級別API)內爲使用來自Apache的卡夫卡的消息爲自己的工作。

因此,對於您的問題:

1)是

2)是的。 Howeer,如果你使用的Spark,您可以考慮使用Spark Cassandra connector,這有助於我們將數據存入Cassandara有效

3)右

4)如上所述,弗林克還採用了卡夫卡消費者對自己的工作。此外,它是一個分佈式流和批處理數據處理,它幫助我們在從Kafka消費後有效地處理數據。在你的情況下,爲了將數據保存到卡桑德拉,你可以考慮使用Flink Cassandra Connector,而不是由你的12個編碼。

+0

感謝您的意見!根據您的回覆,似乎我們沒有任何內置API來將數據存儲在Cassandra中,以防使用Kafka使用者API從Kafka讀取數據?你能確認嗎? –

+0

您可以使用Confluent.io中的Kafka-Cassandra連接器:https://www.confluent.io/blog/kafka-connect-cassandra-sink-the-perfect-match/,或者從community:https:// github。 COM/tuplejump /卡夫卡連接,卡桑德拉。 – NangSaigon