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