2017-12-12 2 views
0

私は2つのブローカーkafka 0.10.2.0クラスターを持っています。再構成係数は2です。このKafkaに対して1.0.0 kafkaストリームアプリケーションを実行しています。私のカフカストリームアプリケーションでは、プロデューサの設定はretries = 10 and retry.backoff.ms = 100Kafka - このサーバーはそのトピックのリーダーではありません - パーティション

数分実行した後、私はKakfa server.logの次のログを観察しました。このカフカストリームアプリケーションのために 'NOT_LEADER_FOR_PARTITION'例外がスローされています。

考えられる原因はありますか?私を助けてください。

[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) 
+0

プロデューサは、このエラーで内部的に再試行し、リタイアした場合にのみリタイアします。ネットワークに問題があり、プロデューサが正しいブローカを見つけられない可能性があります。 –

答えて

3

各トピックは、1つまたは複数のブローカーによって提供されます.1つはリーダーであり、残りのブローカーはフォロワーです。

プロデューサはリーダーのブローカーに新しいメッセージを送信する必要があります。このメッセージは内部的にすべてのフォロワーにデータを複製します。

プロデューサクライアントが正しいブローカに接続せず、リーダーではなくフォロワーに接続し、このフォロワーが送信要求を拒否すると仮定します。

すると、この例では、あなたがyour_topicはすべて3つのブローカーが別のパーティション上の各そのトピックのリーダーであるという意味3つのパーティションを持っていることを見ることができ、ST broker 2partition 0broker 0broker 1にリーダーである./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 

を実行してみますは、partition 0の信者です。

関連する問題