web-dev-qa-db-fra.com

Obtenir le dernier message du script de la console consommateur kafka

Nous pouvons recevoir tous les messages de Kafka en faisant:

 bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

Y a-t-il un moyen de recevoir seulement le dernier message ?

MODIFIER:

Si vous souhaitez uniquement surveiller certains messages (--max-messages 10) dans votre flux, une commande pratique est la suivante:

watch -n5 "./bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic auction --max-messages 10"

8
Paul Leclercq

Je ne suis au courant d'aucun automatisme, mais en utilisant cette approche simple en deux étapes, cela devrait fonctionner. Notez que dans mon cas, il s’agissait d’un sujet partitionné, vous pouvez en laisser les paramètres au cas où vous en auriez un:

1) Obtenez le décalage maximum pour votre sujet (+ leurs partitions):  

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic mytopic

mytopic:2:11
mytopic:1:7
mytopic:0:15
mytopic:3:8

2) Choisissez un sujet (+ partition) et indiquez le paramètre offset - n:  

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytopic --offset 10 --partition 0  

Les n derniers messages du sujet seront imprimés sur la console . Dans mon exemple, 5 messages seront affichés (= 15-10).

14
Aydin K.

J'ai probablement eu la bonne réponse de certains googler http://grokbase.com/t/kafka/users/145x930s27/how-to-get-last-message

Quelqu'un suggère de trouver le dernier décalage avec getOffsetBefore api puis En utilisant ce décalage - 1 à récupérer.

2
Mihail Krivushin

Je pense qu'avec la ligne de commande suivante, cela fonctionnera (c'est-à-dire sans le début de la ligne -)

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test
2
Jérôme B