我正在运行与kafka合作已有一年的服务,并且没有发生领导者的自发变化 . 但是在过去的两周里,这种情况经常发生 . Kafka 登录:
-
[2015-09-27 15:35:14,826] INFO [代理2上的ReplicaFetcherManager]删除了分区的抓取器[myTopic](kafka.server.ReplicaFetcherManager)
-
[2015-09-27 15:35:14,830] INFO截断日志myTopic-0到偏移量11520979.(kafka.log.Log)
-
[2015-09-27 15:35:14,845] WARN [Broker 2上的副本管理器]:由于Leader不是本地分区,从分区[myTopic,0]上的客户端ReplicaFetcherThread-0-2获取具有相关ID 713276的请求失败经纪人2上的[myTopic,0](kafka.server.ReplicaManager)
-
[2015-09-27 15:35:14,857] WARN [Broker 2上的副本管理器]:在分区[myTopic,0]上从客户端mirrormaker-1获取具有相关性ID 256685的请求失败,因为Leader不是本地分区[myTopic经纪人2上的,0](kafka.server.ReplicaManager)
-
[2015-09-27 15:35:20,171] INFO [代理2上的ReplicaFetcherManager]删除分区的fetcher [myTopic,0](kafka.server.ReplicaFetcherManager)
什么可以导致转换领导者?如果某些kafka文档中有信息 - 请 - 只需指向该链接即可 . 我没找到 .
系统配置
kafka版本:kafka_2.10-0.8.2.1
os:Red Hat Enterprise Linux Server 6.5版(圣地亚哥)
server.properties(与默认值不同):
-
broker.id = 001
-
socket.send.buffer.bytes = 1048576
-
socket.receive.buffer.bytes = 1048576
-
socket.request.max.bytes = 104857600
-
log.flush.interval.messages = 10000
-
log.flush.interval.ms = 1000
-
log.retention.bytes = -1
-
controlled.shutdown.enable = true
-
auto.create.topics.enable = false
2 回答
似乎领导经纪人已经关闭了该分区 . 可能是server.properties中配置的数据directroy(log.dirs)空间不足,而代理无法容纳 . 此外,什么是主题的复制因子和经纪人的群集大小?
我假设您有一个主题和一个复制因子为2的分区 . 这对于优化Kafka性能和消费者来说不是一个好的配置 .
您的日志不够清晰,不适合领导者切换 . 由于唯一的分区,您主题中的主要问题可能是只有一个领导者 . 现在,日志中的单个文件的大小越来越大 . Kafka内部在某种程度上进行了重新 balancer (细节未得到确认) . 这可能是你的领导者转换的原因 . 但我不确定 .
同样在你的第二个日志行中,它表示某些日志被截断 . 你能不能详细检查日志,检查是否只在截断后发生?
正如您已经提到的,您已经检查了Kafka日志目录文件及其大小 . 遇到此问题时请运行描述 . 领导开关也会在这里反映出来 . 或者,如果您可以设置一些将显示过去时间的领导者的仪表板 . 然后,您将很容易找到根本原因 .
建议:我建议你创建一个包含更多分区的新主题(阅读Kafka文档以了解最佳分区数)并开始写入它 . 或者您可以检查,如何更改当前主题的分区 .
最后一件事:领导者是否在您的客户中引起了一些问题,或者您只担心警告?