/ / Kafka: puis-je mettre un chemin après le numéro de port du gardien de zoo? - chaîne de connexion, apache-kafka

Kafka: puis-je mettre un chemin après le numéro de port du gardien de zoo? - chaîne de connexion, apache-kafka

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 № 1

L'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.