首页 > 解决方案 > kafka + 此服务器不是该主题分区的领导者 + kafka 生产者

问题描述

server.log我们从每台kafka 机器中得到很多错误3(我们3在集群中有 kafka)

[2019-12-05 13:25:09,529] ERROR [ReplicaFetcherThread-0-1], Error for partition [jdty.dee.rules.time,91] to broker 1001:org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not the leader for that topic-partition. (kafka.server.ReplicaFetcherThread)
[2019-12-05 13:25:09,529] ERROR [ReplicaFetcherThread-0-1], Error for partition [jdty.dee.export.profiles,96] to broker 1001:org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not the leader for that topic-partition. (kafka.server.ReplicaFetcherThread)
[2019-12-05 13:25:09,529] ERROR [ReplicaFetcherThread-0-1], Error for partition [jdty.dee.control.tt.state,40] to broker 1001:org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not the leader for that topic-partition. (kafka.server.ReplicaFetcherThread)
[2019-12-05 13:25:09,529] ERROR [ReplicaFetcherThread-0-1], Error for partition [jdty.dee.control.tt,67] to broker 1001:org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not the leader for that topic-partition. (kafka.server.ReplicaFetcherThread)

据我了解,每个主题都由一个或多个经纪人提供服务 - 一个是领导者,其余经纪人是追随者。

生产者需要向领导者代理发送新消息,领导者代理在内部将数据复制到所有追随者。

我假设您的生产者客户端没有连接到正确的代理,它连接到跟随者而不是领导者,并且该跟随者拒绝您的发送请求。

所以我的问题是 - 如何配置生产者配置以避免这些错误?

标签: apache-kafkakafka-producer-apihdp

解决方案


追随者经纪人从领导经纪人那里获取(领导者没有向追随者推送)。因此,似乎一个追随者经纪人试图从错误的(领导者)经纪人那里获取数据。这可能发生在一个分区的领导者改变了。相应的追随者代理应该自动更新其集群元数据以重新发现新的领导者。如果错误仍然存​​在,则表明此追随者代理在更新其元数据方面存在问题。


推荐阅读