Перейти к содержимому
4 / 15

Ребалансировка групп потребителей: почему она болезненна и что с этим сделали?

Классическая ребалансировка работала по схеме stop-the-world: при входе или выходе любого участника все потребители группы отдавали свои партиции, и назначение начиналось заново — на время паузы обработка группы останавливалась целиком. Отсюда болезненность обычного деплоя: перезапуск десяти инстансов давал десять полных ребалансировок. Улучшения шли тремя шагами. Кооперативная стратегия (cooperative-sticky) отзывает только те партиции, которые действительно переезжают, остальные продолжают обрабатываться. Статическое членство (group.instance.id) позволяет инстансу перезапуститься в пределах session.timeout.ms и вернуть свои партиции без ребалансировки вовсе — то, что нужно при выкатке. Новый протокол ребалансировки (KIP-848), доступный в Kafka 4.0, переносит вычисление назначения на координатора и делает процесс инкрементальным, убирая необходимость синхронного сбора всех участников.

Ребалансировка групп потребителей: почему она болезненна и что с этим сделали? | JScriptiser