1

s71maibg  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(250)

我注意到我的Kafka主题中很少有我无法解释清楚的。
例如:

./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,它显示了leader'-1'。
我还注意到,大约有1/3的针对这个主题的消息由于“超时”而失败。我认为这是一个分区没有领导者的结果。
我想知道是否有人了解为什么会出现这个问题,以及如何在生产场景中从中恢复而不丢失数据?
编辑:我正在使用基于librdkafka的python producer;我看到的错误信息是 Message failed delivery: KafkaError{code=_MSG_TIMED_OUT,val=-192,str="Local: Message timed out"}

bd1hkmkf

bd1hkmkf1#

很可能你的第二个Kafka经纪人破产了。为了检查活跃的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]

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

whitzsjs

whitzsjs2#

这通常表示引导该分区的代理处于脱机状态。我会检查offline partitions度量来确认这一点,但也会检查broker2当前是否正常工作。

相关问题