Выбор ответа Middle Очереди и события спрашивают часто обновлено
Порядок событий заказа
Вопрос
События одного заказа (создан, оплачен, отгружен) должны обрабатываться по порядку. Как этого добиться в Kafka?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Отправлять события с ключом orderid: они попадут в одну партицию. Порядок в Kafka гарантирован только внутри партиции, а сообщения с одинаковым ключом попадают в одну партицию.
Варианты ответа
- Отправлять события с ключом order_id: они попадут в одну партициюправильный ответ
- Создавать отдельный топик на каждый заказ с одной партицией
- Ничего не делать: Kafka держит глобальный порядок по топику
- Отправлять без ключа, Kafka сама упорядочит события по времени
Разбор
Порядок в Kafka гарантирован только внутри партиции, а сообщения с одинаковым ключом попадают в одну партицию. Топик на заказ создаст миллионы топиков, это не масштабируется. Глобального порядка по топику с несколькими партициями нет. Без ключа сообщения распределяются по партициям, и порядок между ними не гарантирован.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.