Sobes.tech
Назад к вопросам
Senior
7

Гарантии доставки сообщений в Kafka (at-most-once, at-least-once, exactly-once) и порядок сообщений

Компании, где спрашивали
Salmon

Ответ от нейросети

sobes.tech AI

В Kafka существуют три основных модели гарантии доставки сообщений:

  • At-most-once (не более одного раза): сообщение может быть доставлено 0 или 1 раз. Возможна потеря сообщений, но дубликаты исключены. Обычно достигается при отключении повторной отправки.

  • At-least-once (минимум один раз): сообщение гарантированно доставляется, но может быть доставлено несколько раз (дубликаты возможны). Это стандартный режим работы Kafka при подтверждении записи.

  • Exactly-once (ровно один раз): сообщение доставляется и обрабатывается ровно один раз. В Kafka это достигается с помощью идемпотентных продюсеров и транзакций, начиная с версии 0.11.

Порядок сообщений: Kafka гарантирует порядок сообщений внутри одного партициона топика. Если у топика несколько партиций, то порядок между ними не гарантируется.

Пример: если продюсер отправляет сообщения в один партицион, потребитель получит их в том же порядке. Если сообщения распределены по разным партициям, порядок может быть нарушен.