Кафка, тема разделов с лидером -1

Я заметил, что некоторые из моих тем о кафке ведут себя так, как я не могу четко объяснить.

Например:

./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"}

3 ответа

Решение

Скорее всего, ваш второй брокер 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]

Если второго брокера нет в списке активных брокеров, вам нужно выяснить, почему он не работает (журналы должны сообщать вам, если что-то пошло не так). Я бы также предложил увеличить коэффициент репликации, поскольку у вас конфигурация с несколькими брокерами.

Это часто означает, что посредник, ведущий этот раздел, находится в автономном режиме. Я бы проверил метрику автономных разделов, чтобы подтвердить это, но также и проверить, работает ли брокер 2 в данный момент.

В последней версии kafka вместо -1 используется None. Чтобы увидеть автономные разделы, выполните следующую команду:

      ./kafka-topics.sh --zookeeper <zookeeper_ip>:2181 --describe | grep "Leader: None"
Другие вопросы по тегам