2017-01-21 1 views
4

J'essaie de tester un seul nœud Kafka avec 3 courtiers & zookeeper. Je souhaite tester en utilisant les outils de la console. Je lance le producteur en tant que tel:Kafka bootstrap-serveurs vs zookeeper dans kafka-console-consumer

kafka-console-producer --broker-list localhost:9092,localhost:9093,localhost:9094 --topic testTopic 

Ensuite, je lance le consommateur en tant que tel:

kafka-console-consumer --zookeeper localhost:2181 --topic testTopic --from-beginning 

Et je peux entrer des messages dans le producteur et les voir dans le consommateur, comme prévu. Cependant, lorsque je cours la version mise à jour du consommateur en utilisant bootstrap-server, je n'ai rien. E.g

kafka-console-consumer --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --topic testTopic --from-beginning 

Cela a bien fonctionné lorsque j'avais un courtier fonctionnant sur le port 9092, donc je suis complètement confus. Est-ce que je peux voir ce que zookeeper fournit en tant que serveur de bootstrap? Le serveur d'amorçage est-il différent de la liste des courtiers? Kafka compilé avec Scala 2.11.

+0

Je vois la même chose. Même, après la suppression de log.dir. Mais, je ne sais pas où est/courtiers/sujet –

Répondre

5

Je ne sais pas ce qui était faux. J'ai probablement mis Kafka ou Zookeeper dans un état bizarre. Après avoir supprimé les rubriques dans le log.dir de chaque courtier ET les rubriques de zookeeper dans /brokers/topics puis recréer le sujet, le consommateur Kafka s'est comporté comme prévu.

+1

Ditto pour moi. Maintenant worky worky. –

+0

Où sont les/broker/topics? –

+0

Je l'ai trouvé avec zookeeper-shell et ensuite lancez la commande: rmr/brokers/topics/TOPIC_NAME Vous pouvez taper help dans zookeeper-shell pour voir les commandes. Voir aussi ceci: http://stackoverflow.com/questions/43073955/kafka-consumer-with-new-api-not-working?noredirect=1&lq=1 –

1

Les serveurs Bootstrap sont les mêmes que les courtiers kafka. Et si vous voulez voir la liste des serveurs bootstrap fournis par zookeeper, vous pouvez interroger les informations ZNode via n'importe quel client ZK. Tous les courtiers actifs sont enregistrés sous/brokers/ids/[brokerId]. Tout ce dont vous avez besoin est l'adresse zkQuorum. Ci-dessous vous donnera commande liste des serveurs bootstrap actifs:

./zookeeper-shell.sh localhost: 2181 < < < "ls/courtiers/ids"

0

J'ai connu le même problème lors de l'utilisation des versions incompatibles de:

  • bibliothèques clientes Kafka
  • scripts Kafka
  • brokers Kafka

Dans mon scénario exact que j'utilisais client Confluent Kafka bibliothèques version 0.10.2.1 avec la plate-forme Confluent 3.3.0 avec le courtier Kafka 0.11.0.0. Lorsque j'ai rétrogradé ma plate-forme Confluent vers la version 3.3.2 qui correspondait à mes bibliothèques clientes, le consommateur a fonctionné comme prévu. Ma théorie est que le dernier kafka-console-consumer utilisant la nouvelle API Consumer ne récupérait que les messages utilisant le format le plus récent. Un certain nombre de changements de format de message ont été introduits dans Kafka 0.11.0.0.