Вы подходите правильно. Вам также нужно установить session.timeout.ms для потребителя и group.max.session.timeout.ms в брокере Kafka, чтобы избежать перебалансировки.
После подписки на ряд тем потребитель автоматически присоединится к группе при вызове poll (long). API опроса предназначен для обеспечения жизнедеятельности потребителей. Пока вы продолжаете вызывать опрос, потребитель будет оставаться в группе и получать сообщения от назначенных ему разделов. Под одеялом потребитель посылает периодические импульсы на сервер. Если потребитель падает или не может отправить тактовые импульсы в течение session.timeout.ms , то потребитель будет считаться мертвым, а его разделы будут переназначены.
max.poll.interval.ms: Максимальная задержка между вызовами poll () при использовании управления группами потребителей. Если poll () не вызывается до истечения этого тайм-аута, то потребитель считается сбойным, и группа будет перебалансирована, чтобы переназначить разделы другому участнику.
Примечание : Обратите внимание, что если максимальный опрос сильно увеличился, это приведет к задержке перебалансировки группы, потому что перебалансировка потребителя присоединиться только при вызове опроса.
request.timeout.ms: Элементы управления конфигурациеймаксимальное количество времени, которое клиент будет ожидать ответа на запрос. Если ответ не получен до истечения времени ожидания, клиент при необходимости повторно отправит запрос или не выполнит запрос, если повторные попытки исчерпаны.
Примечание : Это косвенно не влияет на перебалансировку, однако его необходимо установить, поскольку он всегда должен быть больше, чем max.poll.interval.ms, иначе он вызывает ошибку конфигурации.
session.timeout.ms: Тайм-аут, используемый для обнаружения сбоев потребителей при использовании средства управления группами Kafka. Потребитель посылает брокеру периодические сердечные сокращения, чтобы указать его жизнеспособность. Если посредник не получит пульса до истечения этого тайм-аута, то брокер удалит этого потребителя из группы и инициирует перебалансировку.
Примечание : Но настройкаsession.timeout.ms немного хитро, это само по себе не сработает, вам нужно проверить настройку брокера Kafka group.min.session.timeout.ms, который также необходимо увеличить.
group.max. session.timeout.ms (в брокере kafka) : максимально допустимое время ожидания сеанса для зарегистрированных потребителей. Его значение по умолчанию составляет 30000 мс.