Кафка останавливается через определенный промежуток времени, потерянные брокеры - PullRequest
0 голосов
/ 04 мая 2020

У меня 4 кафки, бегущих с дебезием. После нескольких дней работы три машины kafka на некоторое время выходят из сети, и в connectDistributed.out файле журнала у меня много сообщений со следующей ошибкой:

[2020-05-04 13:27:02,526] WARN [Consumer clientId=connector-consumer-sink-warehouse-6, 
groupId=connect-sink-warehouse] 133 partitions have leader brokers without a matching listener,
 including [SCT010-2, SC2010-2, SC1010-0, SC1010-1, SF4010-0, SUB010-0, SUB010-1, SWP010-0, 
SWP010-1, ACO010-2] (org.apache.kafka.clients.NetworkClient:1044)

У меня есть 4 Машины Кафки, брокеры от 0 до 3

192.168.240.70 - Broker 0
192.168.240.71 - Broker 1
192.168.240.72 - Broker 2
192.168.240.73 - Broker 3

Zookeeper:

192.168.240.70

Follow my server.properties - Там тоже самое, кроме listeners , advertised.listeners указывает на тот же IP-адрес компьютера, на котором установлен Kafka, и broker.id, который должен быть уникальным (от 0 до 3):

broker.id=0
listeners=CONTROLLER://192.168.240.70:9091,INTERNAL://192.168.240.70:9092
advertised.listeners=CONTROLLER://192.168.240.70:9091,INTERNAL://192.168.240.70:9092
listener.security.protocol.map=CONTROLLER:PLAINTEXT,INTERNAL:PLAINTEXT
control.plane.listener.name=CONTROLLER
inter.broker.listener.name=INTERNAL
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/home/william/kafka/data/kafka/
num.partitions=3
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=1
log.retention.hours=150
log.retention.bytes=200000000000
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000

zookeeper.connect=192.168.240.70:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=3

Темы kafka (конфигурации / смещения и статус ) показывает проблемы в репликации. Есть некоторые связанные с конфигурацией слушателей?

kafka manager under replicated info

О состоянии разъемов:

connectors health on kafka connect

А, на кафку подключи. представлен только один брокер:

kafka brokers

Как я могу исправить эту ошибку? Похоже, что-то связанное с выборами лидера или его поиском после долгого времени без доступа брокера.

1 Ответ

0 голосов
/ 05 мая 2020

После исследования я обнаружил проблему. Итак, чтобы помочь здесь, следуйте концепции о проблеме:

Когда мы создаем распределенные системы Kafka, мы распределяем темы по брокерам и создаем лидеров выборщиков. В моем случае у меня есть 4 брокера, которых Zookeeper выбирает на лету, и которые будут лидерами определенных тем.

Поскольку три из четырех серверов Kafka не работали более часа, Zookeeper пытался связаться и может т до лидера. Поскольку мой конфиг указывает на необходимость реплицировать на трех брокеров одну и ту же топи c, Zookeeper не может поддерживать топи c в рабочем состоянии.

У нас есть конфигурация перебалансировки: group.initial.rebalance.delay.ms=3, которая пытается перебалансировать в каждые 3 секунды. И у нас есть ограниченное количество попыток восстановить соединение до того, как один из брокеров Kafka вышел из строя. Попытки были выполнены, и Zookeeper не может достичь потерянных брокеров.

Другими словами, брокеры не отключились, они не могут достичь Zookeeper только из-за проблем с сетью, поэтому через некоторое время попытки из Zookeeper был остановлен, и через некоторое время брокеры Kafka снова достижимы, но попытки перебалансировки остановлены.

Просто, просто перезапуск моих брокеров, чтобы сообщить zookeeper для повторного подключения, решил мою проблему, потому что при перезапуске Брокеры Kafka говорят зоопарку: -Я здесь, жду ваших инструкций. А Zookeeper, признавая потерянных лидеров, воссоединяет все в нужном месте.

Итак, пытаясь быть полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...