2017-06-08 12 views
0

を取得し、私はいくつかのパーティションを持つトピックからメッセージを消費するカフカコンソールコンシューマを使用しています:カフカコンソール消費者は、パーティション

kafka-console-consumer.bat --bootstrap-server localhost:9092 --from-beginning --topic events 

しかし、それだけでメッセージ本文を印刷します。レコードメタデータやパーティション番号も印刷する方法はありますか?私はそのメッセージがどこから来たのか知りたいのです。

コンソールコンシューマのドキュメントhttp://documentation.kamanja.org/_static/command-ref/kafka-console-consumer.pdfを調べましたが、関連するプロパティは見つかりませんでした。

更新日:

だから、私が見るように唯一の解決策はDefaultMessageFormatter.classが(私たちは財産 --formatterとカフカコンソール消費者を実行することによって、それを設定することができます)をオーバーライドし、カスタム・ロジックを追加することですレコードのメタデータを#writeTo(..)メソッドで出力します。

+0

ことが可能です。 – codehacker

答えて

4

https://github.com/edenhill/kafkacat/blob/master/README.md

たとえば、次のコマンドは、トピック、パーティション、オフセット及びメッセージを印刷するkafkacatようなより強力なカフカコマンドライン消費者の使用を検討してください消費各メッセージのペイロード/値:Javaの消費者から

kafkacat -b <broker> -C -t <topic> -f '%t %p @ %o: %s\n'

1

カフカ9の場合、その情報を印刷できるものは何もありません。

コードによると、メッセージフォーマッタはキーと値のみを取得します。

try { 
    formatter.writeTo(msg.key, msg.value, System.out) 
} 

--property print.key=trueメッセージキーを印刷できます。カフカ10において

は、一の以上の有用PARAMあるprint.timestamp

関連する問題