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