2016-12-30 5 views
5

現在、カフカとFlinkで作業しています。私は自分のローカルPCでカフカを実行していて、消費されているトピックを作成しました。Kafkaコンシューマがキーの値のペアを取得

デスクトップ\カフカの\ビン\ウィンドウ>カフカ-コンソールconsumer.bat --zookeeperはlocalhost:2181 -topicテスト

それだけでメッセージを取得している、enter image description here

はへの道がありますメッセージの詳細を知ることができますか?時間を言うことができますか?キー?私はkafkaのドキュメントをチェックしましたが、このトピックについては何も見つかりませんでした。

答えて

9

コンソールのコンシューマー(私はKafka 0.9.0.1を使用しています)を使用して、さまざまな形式でキーとメッセージの値を印刷できます。キーを印刷するには、プロパティprint.keyをtrueに設定します。

別のプロパティkey.separatorがあり、デフォルトでは "\ t"(タブ)があり、これを任意のものに変更することもできます。

これらのプロパティを設定するには、設定ファイルを作成して--consumer.configを使用するか、--property key = valueを使用してプロパティを渡すことができます。

独自のフォーマッタを実装して--formatterオプションとともに使用することもできますが、キーと値はそのまま使用できます(これは以下のwriteToを参照してください)。例えば

trait MessageFormatter { 
    def writeTo(key: Array[Byte], value: Array[Byte], output: PrintStream) 

    def init(props: Properties) {} 

    def close() {} 
} 

./bin/kafka-console-consumer.sh --new-consumer --bootstrap-server kafka-1:9092 --topic topic1 --property print.key=true --property key.separator="-" --from-beginning 
key-p1 
key-p2 
key-p3 
null-4 
null-8 
null-0 
+0

私はカフカがメッセージごとまたは少なくとも生産者からのキーを指定する方法を提供するべきだと思う言われていることを、新しい質問を開くためにしたくありませんトピックごとに私は何を使うことができるか知っていますか? –

+1

$ ./bin/kafka-console-producer.sh --broker-list kafka-1:9092 - トピックtopic1 - プロパティparse.key = true - プロパティkey.separator = " - " thekey-thevalue –

関連する問題