Вопрос проверяет понимание роли partition в масштабировании, параллелизме и гарантии порядка сообщений в Kafka.
Partition отвечает за масштабирование и параллельную обработку данных в Kafka. Все сообщения внутри одного partition упорядочены. Один partition может читаться только одним consumer’ом в рамках consumer group. Количество partition’ов напрямую влияет на максимальный параллелизм чтения. Также partition определяет, где физически будут храниться сообщения.
Partition — это упорядоченный лог сообщений внутри topic’а, который является базовой единицей хранения и параллелизма в Kafka.
Partition выполняет несколько ключевых функций:
Обеспечивает порядок сообщений
Позволяет масштабировать чтение и запись
Является единицей распределения нагрузки
Kafka гарантирует:
строгий порядок сообщений внутри одного partition
отсутствие гарантий порядка между разными partition’ами
Это означает, что если порядок важен, связанные сообщения должны попадать в один partition.
Partition определяет максимальное количество consumer’ов в группе:
один partition → один consumer
несколько partition’ов → параллельное чтение
Producer может указывать key:
сообщения с одинаковым ключом всегда попадают в один partition
это часто используется для сохранения логического порядка (например, по userId)
Partition — это ключевой элемент Kafka, отвечающий за порядок сообщений, параллельность обработки и масштабируемость системы.