Продвинутый
В чем разница между At-most-once, At-least-once и Exactly-once в Kafka?
Это семантики доставки сообщений:
1. At-most-once (Максимум 1 раз): Консьюмер читает сообщение, сразу коммитит оффсет, а потом начинает обработку. Если он упадет во время обработки — сообщение потеряно навсегда.
2. At-least-once (Минимум 1 раз): Консьюмер читает, обрабатывает, и только потом коммитит оффсет. Если он упадет до коммита, после рестарта он прочитает сообщение заново (будет дубль).
3. Exactly-once (Ровно 1 раз): Самая сложная. Требует включения Идемпотентного Продюсера и Транзакций в Kafka. Гарантирует, что дублей не будет ни при записи, ни при чтении.