Kafkaトピックでどのような種類のデータを使用できるのか疑問に思っていました。アプリケーションレベルで知っているように、これはキーと値のペアであり、たとえば、トピックにいくつかのメッセージを送信します。それは、json、寄木細工のファイル、シリアル化されたデータである可能性がありますか、それともプレーンテキスト形式の場合と同様にメッセージを操作しますか?
助けてくれてありがとう。
API、ワイヤープロトコル、またはディスク上のストレージについて話しているかどうかに応じて、さまざまなメッセージ形式があります。
これらのKafkaメッセージ形式のいくつかは、ここのドキュメントで説明されています
https://kafka.Apache.org/documentation/#messageformat
Kafkaには、シリアライザー/デシリアライザーまたはSerDes(Sir-Deezと発音)の概念があります。
https://en.m.wikipedia.org/wiki/SerDes
シリアライザーは、任意のメッセージを受け取り、それをKafkaプロトコルを使用して実際にネットワーク上で送信されるバイト配列に変換できる関数です。
デシリアライザーは逆のことを行い、Kafkaワイヤープロトコルの生のメッセージバイト部分を読み取り、受信アプリケーションに表示させたいメッセージを再作成します。
Strings、Long、ByteArrays、ByteBuffers用の組み込みSerDesライブラリと、JSON、ProtoBuf、Avro、およびアプリケーション固有のメッセージ形式用の豊富なコミュニティSerDesライブラリがあります。
独自のSerDesライブラリを構築することもできます。以下を参照してください。
トピックでは、それは常にシリアル化されたデータです。シリアル化は送信前にプロデューサーで行われ、フェッチ後にコンシューマーで逆シリアル化されます。シリアライザーとデシリアライザーはプラグイン可能であるため、アプリケーションレベルで述べたように、必要なデータ型のキーと値のペアです。