web-dev-qa-db-ja.com

Kafkaメッセージのデータ型

Kafkaトピックでどのような種類のデータを使用できるのか疑問に思っていました。アプリケーションレベルで知っているように、これはキーと値のペアであり、たとえば、トピックにいくつかのメッセージを送信します。それは、json、寄木細工のファイル、シリアル化されたデータである可能性がありますか、それともプレーンテキスト形式の場合と同様にメッセージを操作しますか?

助けてくれてありがとう。

4
Fateax

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ライブラリを構築することもできます。以下を参照してください。

kafkaでカスタムシリアライザーを作成する方法は?

4
Hans Jespersen

トピックでは、それは常にシリアル化されたデータです。シリアル化は送信前にプロデューサーで行われ、フェッチ後にコンシューマーで逆シリアル化されます。シリアライザーとデシリアライザーはプラグイン可能であるため、アプリケーションレベルで述べたように、必要なデータ型のキーと値のペアです。

2