Le serveur kafka est configuré avec un chemin suivant le numéro de port (à partir du fichier server.properties).
zookeeper.connect=xxxxx007:2181/kafka
Le code producteur java:
Properties props = new Properties();
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("metadata.broker.list", "xxxxx007:9092");
Le producteur renseigne le sujet si le courtier omet / kafka
Le producteur reçoit une exception numberFormatException lorsque le courtier contient / kafa
Properties props = new Properties();
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("metadata.broker.list", "xxxxx007:9092/kafka");
java.lang.NumberFormatException: For input string: "9092/kafka"
Le consommateur java se bloque (ne renvoie aucune donnée) si la connexion zookeeper contient / kafka
Properties props = new Properties();
props.put("zookeeper.connect", "xxxxx007:2181/kafka");
Le consommateur java obtient une exception si la connexion zookeeper omet / kakfa
Properties props = new Properties();
props.put("zookeeper.connect", "xxxxx007:2181");
Exception in thread "main" kafka.common.ConsumerRebalanceFailedException: group1_BFTSLBHW0000RGU-1397591737558-f75b6658 can"t rebalance after 4 retries
at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener.syncedRebalance(ZookeeperConsumerConnector.scala:428)
at kafka.consumer.ZookeeperConsumerConnector.kafka$consumer$ZookeeperConsumerConnector$$reinitializeConsumer(ZookeeperConsumerConnector.scala:718)
at kafka.consumer.ZookeeperConsumerConnector.consume(ZookeeperConsumerConnector.scala:209)
at kafka.javaapi.consumer.ZookeeperConsumerConnector.createMessageStreams(ZookeeperConsumerConnector.scala:80)
at kafka.javaapi.consumer.ZookeeperConsumerConnector.createMessageStreams(ZookeeperConsumerConnector.scala:92)
at kafka.examples.TitaniumConsumer.main(TitaniumConsumer.java:73)
Réponses:
0 pour la réponse № 1L'intention derrière la spécification de ce chemin zookeeper est de faire en sorte que pour un cluster particulier, toutes les données disponibles dans kafka apparaissent sous ce chemin particulier.
Notez que vous devez créer ce chemin vous-même avant de démarrer le courtier et que les consommateurs doivent utiliser la même chaîne de connexion.