現在、KafkaとFlinkで作業しています。ローカルPCでkafka=を実行していて、消費されているトピックを作成しました。
Desktop\kafka\bin\windows> kafka-console-consumer.bat --zookeeper localhost:2181 -topic test
メッセージの詳細を取得する方法はありますか?時間を言うことができますか?キー? kafka documentationをチェックしましたが、このトピックについて何かを見つけられませんでした
すぐに使えるコンソールコンシューマー(Kafka 0.9.0.1を使用しています)を使用すると、異なる形式を使用してメッセージのキーと値のみを印刷できます。キーを印刷するには、プロパティprint.key=true
。
別のプロパティkey.separator
があり、これはデフォルトで「\ t」(タブ)であり、必要に応じて変更することもできます。
これらのプロパティを設定するには、設定ファイルを作成して--consumer.config <config file>
を使用するか、--property key=value
を使用してプロパティを渡します。
独自のフォーマッタを実装して--formatter
オプションで使用することもできますが、キーと値だけが残っています。これは、MessageFormatter特性が提供するものです(以下の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
以下のコマンドを使用します。
kafka-console-consumer --bootstrap-server localhost:9092 --topic topic_name \
--from-beginning --formatter kafka.tools.DefaultMessageFormatter \
--property print.key=true --property print.value=true \
--property key.deserialzer=org.Apache.kafka.common.serialization.StringD \
--property value-deserializer=org.Apache.kafka.common.serialization.LongDeserializer