Вступить в клуб →
лёгкаявопросKafka и надёжность распределённых сервисов

События одного заказа приходят в перепутанном порядке

Продюсер отправляет события жизненного цикла заказа (CREATED, PAID, SHIPPED) в топик с 4 партициями, ключ сообщения не задаётся.

Потребитель периодически видит SHIPPED раньше PAID для одного и того же заказа. Как это объяснить?

  • Kafka гарантирует порядок в пределах топика, значит порядок ломает многопоточная обработка на стороне потребителя
  • Достаточно оставить в группе одного потребителя — тогда он прочитает все сообщения строго по времени отправки
  • Нужно выставить acks=all: без подтверждения от всех реплик брокер меняет порядок записи сообщений
  • Порядок гарантирован только внутри партиции: без ключа события одного заказа расходятся по разным партициям — нужен ключ orderId

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела