Kafka消費印刷メッセージフォーマットの設定
1661 ワード
通常、kafkaをテストする場合、kafka-console-consumerを使用してメッセージが消費されるかどうかを確認します.kafkaが公式に提供するコンソール消費メッセージツールに名前を変更し、このコマンド(sh kafka-console-consumer.sh)を直接相殺することでシーンのみをテストできます.
デフォルトでは、このコマンドは、消費メッセージの印刷時にメッセージの値のみを印刷します.
createTime、key、またはメッセージをより友好的に表示するなど、より多くのメッセージの情報を表示する場合は、関連する構成を指定できます.
もちろん他の設定も使えます.次のようになります.
もちろん,以上が要求を完全に満たすことができなければ,カスタムメッセージ表示フォーマットを開発することができる.
デフォルトでは、このコマンドは、消費メッセージの印刷時にメッセージの値のみを印刷します.
createTime、key、またはメッセージをより友好的に表示するなど、より多くのメッセージの情報を表示する場合は、関連する構成を指定できます.
sh kafka-console-consumer.sh ... --property print.key=true key
もちろん他の設定も使えます.次のようになります.
if (props.containsKey("print.timestamp"))
printTimestamp = props.getProperty("print.timestamp").trim.equalsIgnoreCase("true")
if (props.containsKey("print.key"))
printKey = props.getProperty("print.key").trim.equalsIgnoreCase("true")
if (props.containsKey("key.separator"))
keySeparator = props.getProperty("key.separator").getBytes
if (props.containsKey("line.separator"))
lineSeparator = props.getProperty("line.separator").getBytes
// Note that `toString` will be called on the instance returned by `Deserializer.deserialize`
if (props.containsKey("key.deserializer"))
keyDeserializer = Some(Class.forName(props.getProperty("key.deserializer")).newInstance().asInstanceOf[Deserializer[_]])
// Note that `toString` will be called on the instance returned by `Deserializer.deserialize`
if (props.containsKey("value.deserializer"))
valueDeserializer = Some(Class.forName(props.getProperty("value.deserializer")).newInstance().asInstanceOf[Deserializer[_]])
もちろん,以上が要求を完全に満たすことができなければ,カスタムメッセージ表示フォーマットを開発することができる.
1. MessageFormatter , init,writeTo,close
2. --format