私は最近Kafkaを学び始め、これらの質問に終わりました。
ConsumerとStreamの違いは何ですか?私にとって、ツール/アプリケーションがKafkaからのメッセージを消費する場合、Kafkaの世界の消費者です。
これはKafkaからメッセージを消費したり、Kafkaにメッセージを生成したりするため、Streamはどのように違いますか?そして、Consumer APIを使用して独自のコンシューマアプリケーションを記述し、必要に応じて処理するか、コンシューマアプリケーションからSparkに送信できるため、なぜ必要なのでしょうか。
私はこれについてグーグルをしましたが、これに対する良い答えは得られませんでした。この質問があまりにも些細な場合は申し訳ありません。
2018年4月9日更新:最近では、次も使用できます- KSQL 、Kafkaでデータを処理するためのKafkaのストリーミングSQLエンジン。 KSQLはKafkaのStreams APIの上に構築されており、「ストリーム」と「テーブル」の第一級のサポートも付いています。 KafkaまたはScalaでプログラミングコードを記述する必要がないJava StreamsのSQL兄弟のように考えてください。
consumer APIとStreams APIの違いは何ですか?
KafkaのStreams API( https://kafka.Apache.org/documentation/streams/ )は、Kafkaのプロデューサーおよびコンシューマークライアントの上に構築されています。 Kafkaコンシューマクライアントよりも大幅に強力であり、表現力もあります。 Kafka Streams APIの機能の一部を次に示します。
map
、filter
、reduce
などの操作と(2 )命令型スタイル Processor API 例えば複合イベント処理(CEP)を実行し、(3)DSLとプロセッサAPIを組み合わせることもできます。http://docs.confluent.io/current/streams/introduction.html を参照して、Kafka Streams APIのより詳細でありながら高レベルの紹介を参照してください。下位レベルのKafkaコンシューマクライアントとの違いを理解するのに役立ちます。 Kafka Streams APIのDockerベースのチュートリアル もあります。これは今週初めに 私がブログで紹介しました です。
Kafka Streams APIは、Kafkaからメッセージを消費したり、Kafkaにメッセージを生成したりするため、どのように違いますか
はい、Kafka Streams APIは、Kafkaへのデータの読み取りと書き込みの両方を行うことができます。
そして、Consumer APIを使用して独自のコンシューマアプリケーションを記述し、必要に応じて処理するか、コンシューマアプリケーションからSparkに送信できるため、なぜ必要なのでしょうか。
はい、独自のコンシューマーアプリケーションを作成できます-前述したように、Kafka Streams APIはKafkaコンシューマークライアント(およびプロデューサークライアント)自体を使用しますが、 Streams APIが提供するすべての固有の機能を手動で実装します。 「無料」で入手できるものについては、上記のリストをご覧ください。したがって、ユーザーがより強力なKafka Streams APIではなく、低レベルのコンシューマクライアントを選択するのはかなりまれな状況です。