apache-kafka - 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)
据我了解,每个主题都由一个或多个经纪人提供服务 - 一个是领导者,其余经纪人是追随者。
生产者需要向领导者代理发送新消息,领导者代理在内部将数据复制到所有追随者。
我假设您的生产者客户端没有连接到正确的代理,它连接到跟随者而不是领导者,并且该跟随者拒绝您的发送请求。
所以我的问题是 - 如何配置生产者配置以避免这些错误?
解决方案
追随者经纪人从领导经纪人那里获取(领导者没有向追随者推送)。因此,似乎一个追随者经纪人试图从错误的(领导者)经纪人那里获取数据。这可能发生在一个分区的领导者改变了。相应的追随者代理应该自动更新其集群元数据以重新发现新的领导者。如果错误仍然存在,则表明此追随者代理在更新其元数据方面存在问题。
推荐阅读
- r - 如何将数据分成n组,组内总和最小且组间方差最小
- python - 如何自动化 Exe 软件,例如在 Selenium 中自动化 Chrome?
- c++ - 为什么成员函数的符号很弱?
- angular - Angular TypeScript如何分配日期
- java - 我如何设置 Content-Type 以响应 application/json
- mysql - 我的 DataGrip 运行/调试配置错误,无法运行 SQL 控制台脚本
- kotlin - 出现“请将 kotlin-script-runtime.jar 添加到模块依赖项”错误时如何使用 Kotlin 执行 Gradle 测试?
- azure - 如何将 .pem 文件转换为 .byok 文件格式
- bash - 将 Shell 脚本转换为 PowerShell 脚本
- r - 在 r 中输出具有适当宽度和高度的图