此卡夫卡错误是什么意思?
[2018-08-22 11:40:49,429]警告[Consumer clientId = consumer-1, groupId = console-consumer-62114] 1个分区具有领导者经纪人 没有匹配的侦听器,包括[topicname-0] (org.apache.kafka.clients.NetworkClient)
我在运行时得到它:
./kafka-console-consumer.sh --topic topicname --bootstrap-server localhost:9094
当尝试阅读本主题时,我在golang程序中遇到一些错误:
2018/08/22 11:44:12 ReadOffsetWithRetryOnError conn错误:<拨打tcp :0:connect:连接被拒绝> kafka0:9094主题:0
代码段:
conn, err := kafka.DialLeader(context.Background(), "tcp", ip, getTopic(topic), 0)
if err != nil {
log.Println("ReadOffsetWithRetryOnError conn error: <", err, "> ", ip, " topic:", topic)
}
这很奇怪,因为在阅读不同主题时,它同时运行良好。
更多错误日志:
/kafka-topics.sh-描述--zookeeper本地主机:2181 --topic topicname主题:indexBlock PartitionCount:1
ReplicationFactor:1配置: 主题:topicname分区:0领导者:-1复制:1002 Isr:1002
答案 0 :(得分:4)
[2018-08-22 11:40:49,429]警告[Consumer clientId = consumer-1,groupId = console-consumer-62114] 1个分区的领导者经纪人没有匹配的侦听器,包括[topicname-0](org .apache.kafka.clients.NetworkClient)
如果您尝试运行多个使用者并且kafka主题仅包含一个分区,也会发生此错误。通常,一个使用者应映射一个分区。如果您使用两个使用者,那么kafka主题中应该有2个分区。
我尝试设置kafka connect群集,并严重用力过头以解决此问题。希望对别人有帮助。
答案 1 :(得分:1)
我认为我的问题是我正在运行2个实例,而没有为复制设置任何特殊设置。 (可能没有复制吗?)然后我删除了一个代理。一些主题停止工作。
答案 2 :(得分:1)
就我而言,我在测试Kafka
故障转移时遇到此错误。我放下1 Kafka
,并希望将消息写入其他Kafka
。
问题是,当我需要将主题replication-factor
设置为1时,将其设置为2。
奖金:检出为两个Kafka
创建主题的目录,您将了解为什么:-)
答案 3 :(得分:0)
就我而言,我在将我的kafka集群从v2.0更新到v2.4时遇到了此错误。原因是server.properties文件中的log.dirs配置设置错误。因为我没有注意到不同节点的磁盘名称不同,而且在log.dirs设置中磁盘名称不匹配。
答案 4 :(得分:0)
jumping_monkey在检查目录方面的好处是有帮助的。对我来说,我正在使用Bitnami Kafka进行部署。第一次部署时,我的掌舵值并不是config
。我想将保留时间更改为几分钟,并设置为:
config: |-
log.retention.minutes=10
这导致log.dirs
目录从/bitnami/kafka/data
切换到/tmp/logs
。
基本上,数据存储在Kafka代理上的位置会导致错误显示。
答案 5 :(得分:0)
我在 docker 容器中运行 Kafka 时遇到了这个问题。
以下解决方案有助于解决该问题。
正如 @coldkreap
在此答案的评论中所提到的:https://stackoverflow.com/a/58067985/327862
kafka 代理信息在重启之间保持,因为
wurstmeister/kafka
图像创建一个名为“kafka”的卷。如果你跑
docker volume ls 你会看到一个 kafka 卷。删除该卷并
您将能够重新创建主题等。
如果使用 docker-compose
,您可以运行以下命令来删除容器及其关联的卷:
docker-compose down -v
或
docker-compose rm -sv
答案 6 :(得分:-1)
我遇到了这个问题,我通过创建一个新的代理并启动来解决了这个问题。之后,您必须重新启动不同的使用者,生产者等。