Size: a a a

2021 July 09

DG

Dmitry Goncharov in pro.kafka
размер сообщения разный от 1024 байт до 10 мб
источник

А

Александр in pro.kafka
Коллеги, приветствую, есть профессионалы в настройке и эксплуатации брокера очередей Apache Kafka? есть проблемки которые дока не помогает решить.

Вопрос следующий... я использую кафку как прослойку  между 2-мя скриптами. по факту это миграция данных из мускуля в монгу, где первый скрипт забирает из мускуля и кидает в кафку, второй консюмер который читает из кафки обрабатывает данные и засылает в монгу.

так вот проблема собственно с консюмером всегда.
если я делаю достаточно долгую обработку < 5sec, то при попытке сделать consumer.commit() я получаю ошибку о том что группа разбалансирована. и дальнейшая работа этого консюмера не возможно.
благо кафка пишет в ошибку достаточно подробную причину и решение. и сообщает о том что нужно увеличить max_poll_interval_ms,  я раскурил что это время которое дается консюмеру на обработку сообщения, и если он выходит за рамки то менеджер группы считает консюмер мертвым. и более не принимает от него запросов. попытался увеличить. но из под консюмера и из под продюсера эти настройки не применяются... через коннект, прилошь кондуктором(прога менеджер кафки)  править вручную этот параметр и только тогда он применил. поставил там 15 сек вместо 5. в одном случае это помогло... но  бывает так что это не спасает и допустим после 500к записей обработанных начинается беда и отвал постоянный. буквально 5-10 записей и отвал.
пробовал уже убирать автокомит чтобы он 100% всегда ожидал ответа моего консюмера. не убирается. при этом вконце если я коммит не добавлю ручками, он ломается..... бред происходит крч....)
еще есть одна задача. где нужно внутри консюмера бесконечный цикл запустить ожидая подключения клиента. и это может продлится долго. и соответственно кафка отваливается с такой же ошибкой.
Пишу на питоне. использую коннекторы aiokafka и kafka-python,   сама кафка поднята одной нодой из сборки wurstmeister/kafka

Консюмер работает в многопотоке. порядка 10-20 консюмеров в группе на один топик.
источник

IK

Ilya Kaznacheev🥤 in pro.kafka
Сколько партиций в топике?
источник

А

Александр in pro.kafka
100
источник

IK

Ilya Kaznacheev🥤 in pro.kafka
Проверьте, нет ли такого, что GIL фризит консумера на предмет отправки хертбитов кафке. Если это происходит, кафка считает, что консумер подох, и начинает ребалансировку, что как раз похоже на ваш случай
источник

А

Александр in pro.kafka
Да скорее всего так и происходит, как этого можно избежать?
источник

IK

Ilya Kaznacheev🥤 in pro.kafka
Читать доки к либе, обсуждение и все такое
источник

IK

Ilya Kaznacheev🥤 in pro.kafka
У меня еще такое было, когда в кубе процесс упирался в лимит по цпу (правда на го, а не на питоне), куб начинал троттлинг, консумер начинал реже отправлять хертбиты, и кафка его теряла
источник

IK

Ilya Kaznacheev🥤 in pro.kafka
Точнее не процесс, а целый под
источник

IK

Ilya Kaznacheev🥤 in pro.kafka
Крч ищите, из-за чего консумер не отправляет хертбиты вовремя и лечите эту проблему, изменение конфигов тут не поможет
источник

N

Nick in pro.kafka
Попробуйте лимитировать количество вычитываемых за раз записей max.poll.records чтобы укладываться во время между пулами
источник

А

Александр in pro.kafka
В том то и дело что дока и ошибки говорят править конфиг :)... А можно как то отправлять насильно отдельным потоком хертбит?
источник

IK

Ilya Kaznacheev🥤 in pro.kafka
Оно так и должно быть реализовано по идее
источник

IK

Ilya Kaznacheev🥤 in pro.kafka
Но я тут не помогу, это лучше в чат к питонистам закинуть
источник

А

Александр in pro.kafka
Уже, оттуда сюда и перевели
источник

А

Александр in pro.kafka
Были и такие попытки, ок ещё раз потрогаю
источник

ЮХ

Юра Ходырев... in pro.kafka
В модуле питона, который вы используете чаще всего есть полный набор конфиг параметров для настройки producer или  consumer части
источник

ЮХ

Юра Ходырев... in pro.kafka
То есть по идее в той же секции, где описывается подключение bootstrap-servers, необходимо добавить properties для ограничения вычитываемых сообщений за раз, возможно есть даже какой то таймер для выставления хертбитов
источник

А

Александр in pro.kafka
Есть такое, однако по какойто причине при коннекте изменяя эти параметры, ничего не происходит, только если кондуктором менять получалось
источник

ЮХ

Юра Ходырев... in pro.kafka
кондуктором - это настройки самой кафки, а тут нужно править настройки клиента
источник