Как работает Kafka с несколькими инстансами приложения? Что такое consumer group, партиции, ребалансировка?
Answer from AI
sobes.tech AI
Kafka — это распределённая платформа обмена сообщениями, которая эффективно работает с несколькими инстансами приложения благодаря концепции consumer group и партиций.
Consumer group — это группа потребителей (инстансов приложения), которые совместно читают данные из топика. Каждый инстанс в группе получает уникальный набор партиций для обработки, что обеспечивает параллелизм и масштабируемость.
Партиции — это логические разделы топика, которые позволяют распределять данные и нагрузку между потребителями. Каждая партиция — это упорядоченный лог сообщений.
Когда несколько инстансов приложения входят в одну consumer group, Kafka распределяет партиции между ними так, чтобы каждый инстанс обрабатывал уникальный набор партиций.
Ребалансировка происходит, когда в consumer group добавляется или удаляется инстанс, или меняется количество партиций. Kafka перераспределяет партиции между активными потребителями, чтобы сохранить баланс нагрузки.
Пример: если у топика 4 партиции и 2 инстанса в группе, каждый получит по 2 партиции. Если добавится третий инстанс, ребалансировка перераспределит партиции, например, 2,1,1.
Это позволяет масштабировать обработку сообщений и обеспечивать отказоустойчивость.