web-dev-qa-db-fra.com

Kafka Le consommateur obtient une paire de valeurs de clé

Je travaille actuellement avec Kafka et Flink, j'ai kafka exécuté sur mon ordinateur local et j'ai créé un sujet en cours de consommation.

Bureau\kafka\bin\windows> kafka-console-consumer.bat --zookeeper localhost: 2181 -test test

mais il ne fait que récupérer le message, enter image description here

y a-t-il un moyen d'obtenir plus de détails sur le message? laisse dire le temps? clé? J'ai vérifié kafka documentation mais je n'ai rien trouvé à ce sujet

25

Si vous utilisez une console prête à l'emploi (j'utilise Kafka 0.9.0.1), vous pouvez uniquement imprimer la clé et la valeur des messages en utilisant différents formats. Pour imprimer la clé, définissez la propriété print.key=true.

Il y a une autre propriété key.separator qui par défaut est "\ t" (un onglet) que vous pouvez également modifier.

Pour définir ces propriétés, vous pouvez créer un fichier de configuration et utiliser --consumer.config <config file> ou transmettez les propriétés avec --property key=value.

Vous pouvez également implémenter votre propre formateur et l'utiliser avec --formatter mais vous aurez toujours juste la clé et la valeur car c’est ce que trait MessageFormatter (voir writeTo ci-dessous).

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

    def init(props: Properties) {}

    def close() {}
}

Par exemple:

./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
50
Luciano Afranllie

Utilisez la commande ci-dessous:

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
1
ankit kansal