Гарантии доставки Kafka

В Apache Kafka есть специальные настройки, которые накладывают свои алгоритмы во взаимодействия.

At-most-once – как максимум один раз. Доставка, при которой сообщение может быть потеряно. Например, если Producer(отправитель) шлет сообщение, и в этот момент произойдет сбой соединения. Или в момент обработки брокером сообщения, произойдет сбой самого компьютера. В этих случаях сообщение не будет отправлено повторно. Такая гарантия обеспечивает быструю работу, за счет того, что уходят лишние манипуляции с проверками и переотправками.

At-least-once – как минимум один раз. Данная гарантия обеспечивает доставку за счет синхронного подтверждения этой доставки(acknowledgment), но может произойти обратная ситуация. Например, в момент обработки сообщения брокером, может произойти сбой интернета, тогда Producer не получит подтверждение, однако сообщение сохранится в топике. Произойдет повторная отправка и тогда в топике будет уже 2 одинаковых сообщения. Это отличный механизм, который позволяет работать достаточно быстро, но необходимо заботиться об идемпотентности отправляемых данных.

Exactly-once – ровно один раз. Гарантия, которая исключает дубли и потерю данных, но понижает скорость работы взаимодействий. Обычно используется, когда конечный получатель сообщения сам брокер, например, для хранения данных.

Гарантии доставки Kafka
2
Начать дискуссию