0

kafkacat を使用してトピック内のメッセージを検索し、それをトピックに公開しようとしています。メッセージ値はバイト単位にする必要があるため、protobuf を使用します (キーは、文字列やバイトなど異なる場合があります)。ただし、適切に逆シリアル化できるメッセージを公開できません。

どうすればこれをkafkacatで行うことができますか? また、これを行うために他の推奨ツールを使用することにもオープンです。


試行例:

kafkacat -b <broker> -t <topic> -o -10 -e -c 1 -C -K: > test2.txt
cat test2.txt | kafkacat -b <broker> -t <topic> -P -K:

test2.txt は以下を示します:

21aa7e2f-41a1-4972-9108-3057627d53f0:
Y/<protobuf.class.path>i
$21aa7e2f-41a1-4972-9108-3057627d53f0A
DIABETEBG_METERBG300"BG300*QP3687WK02000012????

しかし、同じ kafkacat consumer コマンドを使用して結果を取得すると、最後の行が表示されます。

DIABETEBG_METERBG300"BG300*QP3687WK02000012????

問題は、消費する出力行 (ペイロードの一部である可能性がありますか?) と、プロデューサーが各行を新しいメッセージとして扱っていることだと思います。

4

1 に答える 1

0

プロデューサーは各行を新しいメッセージとして扱っています

そのとおりです。

kafkacat は UTF8 でエンコードされた文字列を入力として想定しているため、バイナリ ファイルがある場合は、このためのコードを記述することをお勧めします。

于 2021-02-23T19:57:05.983 に答える