Изменения документа Гарантии доставки

Редактировал(а) Alexandr Fokin 2026/07/27 03:09

От версии 1.6
отредактировано Alexandr Fokin
на 2026/07/19 13:14
Изменить комментарий: К данной версии нет комментариев
К версии 1.11
отредактировано Alexandr Fokin
на 2026/07/19 13:29
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -29,9 +29,13 @@
29 29  \\transactional.id - влияет на идентификацию экземпляра producer при переподключении. |(% style="width:1164px" %)Использование ручного коммита после завершения обработки (транзакции БД).
30 30  \\AutoOffsetReset = AutoOffsetReset.Earliest
31 31  ENABLE_AUTO_COMMIT = false
32 -\\Может использоваться для дедупликации.
32 +\\Возможные проблемы:(((
33 +1. Дублирование на отправке.
34 +1. Не закомиченное смещение (падение consumer).
35 +1. Отвал consumer по timeout (долгая обработка, сообщение передано к другому consumer).
36 +
33 33  TransactionalInbox.
34 -\\Долгая обработка сообщения может привести к отключению consumer по timeout. Это может провести к тому, что сообщение поступит на другой потребитель. В таком случае только TransactionalInbox.
38 +)))
35 35  |(% style="width:128px" %)(((
36 36  Exactly‑Once
37 37  )))|(% style="width:1164px" %)Гарантия доставки строго один раз.
... ... @@ -39,9 +39,11 @@
39 39  )))
40 40  |(% style="width:108px" %) |(% style="width:1326px" %)(((
41 41  |(% style="width:136px" %)TransactionalInbox|(% style="width:1216px" %)(((
42 -|(% style="width:248px" %)Полный|(% style="width:950px" %)Хранится IdempotencyId каждого входящего сообщения (уникальный индекс), для дедубликации.
43 -|(% style="width:248px" %)Только offset (облегченный)|(% style="width:950px" %)Специфично для kafka. Храниться только topic+partition+offset.
44 -|(% style="width:248px" %) |(% style="width:950px" %)
46 +|(% style="width:207px" %)Полный|(% style="width:991px" %)Хранится IdempotencyId каждого входящего сообщения (уникальный индекс), для дедубликации.
47 +Полная защита от дублей (даже если это несколько сообщений, с одинаковым ключом).
48 +|(% style="width:207px" %)Только offset (облегченный)|(% style="width:991px" %)Специфично для kafka. Храниться только topic+partition+offset.
49 +Защищает только от потери смещения (сообщение обработано, но offset не закомичен) и consumer timeout. Не поможет при дублировании на отправке (более 1 сообщения).
50 +|(% style="width:207px" %) |(% style="width:991px" %)
45 45  )))
46 46  |(% style="width:136px" %) |(% style="width:1216px" %)
47 47  )))