web-dev-qa-db-fra.com

Kafka - Ce serveur n'est pas le leader de cette partition de sujet

J'ai deux cluster kafka 0.10.2.0 courtier.Le facteur de duplication est 2. Je suis en train d'exécuter l'application flux 1.0.0 kafka contre ce Kafka. Dans mon application de flux kafka, la configuration du producteur a retries = 10 and retry.backoff.ms = 100

Après quelques minutes d'exécution, j'ai observé les journaux suivants dans Kakfa server.log. En raison de ce flux, l'application Kafka génère une exception 'NOT_LEADER_FOR_PARTITION'.

Quelle peut être la raison possible? Aidez-moi, s'il vous plaît.

[2017-12-12 10:26:02,583] ERROR [ReplicaFetcherThread-0-1], Error for partition [__consumer_offsets,22] to broker 1:org.Apache.kafka.common.errors.NotLeaderForPartitionException: This server is not the leader for that topic-partition. (kafka.server.ReplicaFetcherThread)
4
Rednam Nagendra

Chaque sujet est desservi par un ou plusieurs courtiers - un est le chef et les courtiers restants sont des partisans.

Un producteur doit envoyer de nouveaux messages au courtier principal, qui réplique en interne les données à tous les suiveurs.

Je suppose que votre client producteur ne se connecte pas au bon courtier, il se connecte à un suiveur au lieu du responsable et ce dernier rejette votre demande d'envoi.

Essayez de lancer ./kafka-topics.sh --zookeeper localhost:2181 --topic your_topic --describe

Topic:your_topic    PartitionCount:3    ReplicationFactor:1 Configs:retention.ms=14400000
Topic: your_topic   Partition: 0    Leader: 2   Replicas: 2 Isr: 2
Topic: your_topic   Partition: 1    Leader: 0   Replicas: 0 Isr: 0
Topic: your_topic   Partition: 2    Leader: 1   Replicas: 1 Isr: 1

Dans cet exemple, vous pouvez voir que your_topic possède 3 partitions, ce qui signifie que les 3 courtiers sont les leaders de ce sujet sur des partitions différentes, st broker 2 est le leader sur partition 0 et broker 0 et broker 1 sont des adeptes sur partition 0

1
Gal Shaboodi

Essayez de définir ces propriétés et voyez si cela vous aide à résoudre le problème: 

props.put(ProducerConfig.RETRIES_CONFIG, 10);  //increase to 10 from default of 0
props.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG,   
    Integer.toString(Integer.MAX_VALUE)); // increase to infinity from default of 300 s

( La source )

0
Anand