Сначала ответь вслух
Скажи ответ вслух хотя бы пару минут, потом открой эталон и сравни. Эталон открыт всем и не требует входа.
Показать ответ
Эталонный ответ
Партиция — упорядоченный журнал, и потребитель читает её по порядку. Между партициями порядка нет. Продюсер по умолчанию выбирает партицию по хешу ключа, поэтому события одного заказа с ключом-id заказа идут по порядку.
- Число партиций увеличили: ключи стали попадать в другие партиции, новые события обгоняют старые.
- Повторы отправки при нескольких запросах в полёте без идемпотентности могут переставить сообщения.
- Потребитель обрабатывает сообщения одной партиции параллельно.
- Ошибочные сообщения уходят в отдельный топик повторов, а следующие обрабатываются раньше.
Как у тебя получилось?
Уточняющие вопросы
Так обычно копают глубже. Раскрой строку, когда ответишь вслух.
Уточнение 1-го уровня: Как обрабатывать параллельно и сохранить порядок по ключу?
Ответ уровня Senior
Раскладывать сообщения партиции по внутренним очередям по хешу ключа: разные ключи обрабатываются параллельно, один ключ — последовательно. Смещение фиксировать только до последнего полностью обработанного сообщения.
Типичные ошибки
- Ждать общий порядок по всему топику.
- Менять число партиций в работающем топике, где важен порядок по ключу.
Первоисточники
Быстрые задания по теме
Для темы «Партиции и порядок сообщений» быстрых заданий пока нет
Можно проверить всю зону «Kafka» тестом на 10 минут.
Проверить себя за 10 минут