web-dev-qa-db-fra.com

La rubrique est introuvable lors de la production de messages: UNKNOWN_TOPIC_OR_PARTITION

J'ai un cluster à deux nœuds kafka (instances EC2) où chaque nœud est utilisé comme courtier distinct. Lorsque j'exécute un producteur sur l'instance leader avec la commande suivante:

kafka-console-producer.sh   --broker-list localhost:9092 --topic test

J'obtiens les erreurs suivantes.

message de test [2017-01-09 13: 22: 39,483] WARN Erreur lors de la récupération des métadonnées avec l'ID de corrélation 0: {test = UNKNOWN_TOPIC_OR_PARTITION} (org.Apache.kafka.clients.NetworkClient) [2017-01-09 13:22: 39,562] Erreur WARN lors de la récupération des métadonnées avec l'ID de corrélation 1: {test = UNKNOWN_TOPIC_OR_PARTITION} (org.Apache.kafka.clients.NetworkClient) [2017-01-09 13: 22: 39,663] Erreur WARN lors de la récupération des métadonnées avec l'ID de corrélation 2: {test = UNKNOWN_TOPIC_OR_PARTITION} (org.Apache.kafka.clients.NetworkClient) ...

Liste des sujets avec kaka-topics.sh montre que le sujet existe.

La description du sujet avec:

kafka-topics.sh --zookeeper localhost:2181 --describe --topic test

retour

 Topic:test PartitionCount:8    ReplicationFactor:1 Configs:
     Topic: test    Partition: 0    Leader: 1   Replicas: 1 Isr: 1
     Topic: test    Partition: 1    Leader: 2   Replicas: 2 Isr: 2
     Topic: test    Partition: 2    Leader: 1   Replicas: 1 Isr: 1
     Topic: test    Partition: 3    Leader: 2   Replicas: 2 Isr: 2
     Topic: test    Partition: 4    Leader: 1   Replicas: 1 Isr: 1
     Topic: test    Partition: 5    Leader: 2   Replicas: 2 Isr: 2
     Topic: test    Partition: 6    Leader: 1   Replicas: 1 Isr: 1
     Topic: test    Partition: 7    Leader: 2   Replicas: 2 Isr: 2

J'utilise kafka 0.10.1.1.

server.propertes le fichier contient:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://0.0.0.0:9092
port=9092
Host.name=kafka-node1(kafka-node1 for the second Host)
advertised.Host.name=kafka-node1(kafka-node2 for the second Host)
advertised.port=9092

Lorsque j'essaie de produire des messages à partir du deuxième hôte, j'obtiens le message ci-dessous:

WARN Une erreur a produit une réponse avec l'ID de corrélation 1 sur le sujet-partition test-4, réessayant (il reste 2 tentatives). Erreur: NOT_LEADER_FOR_PARTITION (org.Apache.kafka.clients.producer.internals.Sender) ....

Quelqu'un peut-il aider s'il vous plait? Merci.

10
saloua

Faites le facteur de réplication 2 pour le sujet test et vous n'obtiendrez plus cette exception. Puisque vous avez un cluster à 2 courtiers, exécutez la commande ci-dessous pour produire des messages:

kafka-console-producer.sh   --broker-list localhost:9092,localhost:9093 --topic test

Cela enverra des messages aux deux courtiers des clusters.

1
shiba goyal