Выбор ответа Middle Очереди и события спрашивают часто обновлено

Порядок событий заказа

Вопрос

События одного заказа (создан, оплачен, отгружен) должны обрабатываться по порядку. Как этого добиться в Kafka?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Отправлять события с ключом orderid: они попадут в одну партицию. Порядок в Kafka гарантирован только внутри партиции, а сообщения с одинаковым ключом попадают в одну партицию.

Варианты ответа

  1. Отправлять события с ключом order_id: они попадут в одну партициюправильный ответ
  2. Создавать отдельный топик на каждый заказ с одной партицией
  3. Ничего не делать: Kafka держит глобальный порядок по топику
  4. Отправлять без ключа, Kafka сама упорядочит события по времени

Разбор

Порядок в Kafka гарантирован только внутри партиции, а сообщения с одинаковым ключом попадают в одну партицию. Топик на заказ создаст миллионы топиков, это не масштабируется. Глобального порядка по топику с несколькими партициями нет. Без ключа сообщения распределяются по партициям, и порядок между ними не гарантирован.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.