You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka-Streams应用启动报unknown topic or partition错误求助

Kafka Streams应用对接3节点集群时出现“未知主题或分区”错误排查

问题背景

部署Kafka Streams应用对接3节点Kafka集群时,集群运行正常,bootstrap.servers配置正确,但启动应用后持续收到unknown topic or partition error错误。已设置Kafka的auto.create.topics.enable=true,且通过kafka-topics.sh确认Changelog和Repartition主题已存在,但问题仍未解决。

相关配置与日志

Docker YAML配置

#KV STORE Instance
kvstore1gcf102:
    image: kafka-kv-store:1.1.125
    restart: always
    hostname: kvstore_13_1_gcf102
    ports:
        - 7071:8080
    environment:
        APPLICATIONID_KVSTORE: "kafka-kv-store-gcf102"
        HOSTNAME_KVSTORE: "kvstore_13_1_gcf102"
        STREAMPROPS_KVSTORE: "bootstrap.servers=192.168.2.13:9092,192.168.2.14:9092,192.168.2.16:9092 num.standby.replicas=0"
        TOPIC_KVSTORE: "messages_shown"

错误日志

18:31:11,637 WARN  org.apache.kafka.clients.consumer.internals.Fetcher
- [Consumer clientId=kafka-kv-store-gcf102-ab44b41c-71cb-4cfa-926a-898cdfbb192c-StreamThread-1-consumer, 
groupId=kafka-kv-store-gcf102] Received unknown topic or partition error 
in ListOffset request for partition kafka-kv-store-gcf102-shown-count-kv-repartition-0

主题查询结果

root@SRV-003:~/tmp# /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server 192.168.2.13:9092 | grep kafka-kv-store-gcf102
kafka-kv-store-gcf102-shown-count-kv-changelog
kafka-kv-store-gcf102-shown-count-kv-repartition

排查与解决方案

  • 检查主题分区状态:虽然主题已存在,但目标分区-0可能未成功创建或处于不可用状态。执行以下命令查看主题详细信息:

    /opt/kafka/bin/kafka-topics.sh --describe --bootstrap-server 192.168.2.13:9092 --topic kafka-kv-store-gcf102-shown-count-kv-repartition
    

    重点确认分区0的Leader、Replicas和Isr状态,若Leader不可用或Isr列表为空,需排查集群节点状态或副本同步问题。

  • 验证应用权限:应用运行身份可能缺少目标主题的读取权限。检查ACL配置:

    /opt/kafka/bin/kafka-acls.sh --list --bootstrap-server 192.168.2.13:9092 --topic kafka-kv-store-gcf102-shown-count-kv-repartition
    

    确保应用对应的客户端ID或用户拥有Read权限,缺失则添加对应ACL规则。

  • 排查集群元数据同步:多节点集群可能存在元数据同步延迟,导致应用连接的节点未获取最新主题信息。可尝试:

    • 重启Kafka Streams应用,触发元数据重新拉取
    • 检查集群控制器节点运行状态,确认控制器正常工作
  • 修正主题创建参数:自动创建的主题可能不符合应用所需的分区数/副本数,导致应用请求的分区不存在。可手动删除后重新创建主题:

    /opt/kafka/bin/kafka-topics.sh --delete --bootstrap-server 192.168.2.13:9092 --topic kafka-kv-store-gcf102-shown-count-kv-repartition
    /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server 192.168.2.13:9092 --topic kafka-kv-store-gcf102-shown-count-kv-repartition --partitions 1 --replication-factor 3
    

    注意根据集群实际配置调整分区数和副本数。

  • 检查网络连通性:应用容器与Kafka节点可能存在网络隔离,导致无法访问特定节点上的分区。在容器内测试连通性:

    docker exec -it kvstore1gcf102 ping 192.168.2.13
    docker exec -it kvstore1gcf102 nc -zv 192.168.2.13 9092
    

    确保所有集群节点的9092端口都能正常访问。


内容的提问来源于stack exchange,提问作者user3008410

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:05:20