首页 文章

Kafka 主题分区与领导者-1

提问于
浏览
2

我注意到我的卡夫卡主题中很少有人表现得我无法解释清楚。

例如:

./kafka-topics.sh --describe --zookeeper ${ip}:2181 --topic test

Topic:test  PartitionCount:3    ReplicationFactor:1 Configs:retention.ms=1209600000
    Topic: test Partition: 0    Leader: 1   Replicas: 1 Isr: 1
    Topic: test Partition: 1    Leader: -1  Replicas: 2 Isr: 2
    Topic: test Partition: 2    Leader: 3   Replicas: 3 Isr: 3

我特别关注分区:1 显示领导者'-1'。

我还注意到,由于“超时”,此主题产生的大约 1/3 条消息失败。我认为这是一个分区没有领导者的结果。

我想知道是否有人深入了解为什么会出现此问题以及如何在不丢失数据的情况下从生产方案中恢复?

编辑:我正在使用基于 librdkafka 的 python 生成器;我看到的错误信息是Message failed delivery: KafkaError{code=_MSG_TIMED_OUT,val=-192,str="Local: Message timed out"}

2 回答

  • 2

    很可能你的第二个卡夫卡经纪人倒闭了。要检查有效的 Kafka 经纪商,您需要运行

    ./zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids"
    

    输出应类似于下面的输出:

    Connecting to localhost:2181
    Welcome to ZooKeeper!
    JLine support is enabled
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:None path:null
    [zk: localhost:2181(CONNECTED) 0] ls /brokers/ids
    [0, 1, 2]
    [zk: localhost:2181(CONNECTED) 1]
    

    如果第二个代理未在活动代理中列出,那么您需要弄清楚为什么没有启动并运行(日志应该告诉您是否出现问题)。我还建议增加 replication-factor,因为你有一个 multi-broker 配置。

  • 1

    这通常表示引导该分区的代理处于脱机状态。我会检查脱机分区指标以确认这一点,但也要检查代理 2 当前是否正常运行。

相关问题