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

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

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

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -11,10 +11,9 @@
11 11  At‑Most‑Once
12 12  )))|(% style="width:1164px" %)Гарантия доставки не более одного раза.
13 13  Гарантируется, то не будет дублей, но допускаются потери.|(% style="width:1164px" %)Без подтверждения доставки и повторных отправок (гарантирует отсутствие дублей), но сообщение может быть потеряно на фазе отправки (т.к. без подтверждения).
14 -\\Acks = None
14 +\\Acks = 0
15 15  MessageSendMaxRetries = 0|(% style="width:1164px" %)Сообщение коммитится сразу (без подтверждения), это гарантирует что не будет дублирования, но сообщение может быть потеряно на фазе получения (падение или timeout потребителя).
16 -\\AutoOffsetReset = AutoOffsetReset.Earliest
17 -ENABLE_AUTO_COMMIT = true
16 +\\ENABLE_AUTO_COMMIT = true
18 18  |(% style="width:128px" %)(((
19 19  At‑Most‑Once
20 20  )))|(% style="width:1164px" %)Гарантия доставки хотя бы один раз.
... ... @@ -27,30 +27,14 @@
27 27  \\EnableIdempotence = true
28 28  MessageSendMaxRetries <> 0
29 29  \\transactional.id - влияет на идентификацию экземпляра producer при переподключении. |(% style="width:1164px" %)Использование ручного коммита после завершения обработки (транзакции БД).
30 -\\AutoOffsetReset = AutoOffsetReset.Earliest
31 -ENABLE_AUTO_COMMIT = false
32 -\\Возможные проблемы:(((
33 -1. Дублирование на отправке.
34 -1. Не закомиченное смещение (падение consumer).
35 -1. Отвал consumer по timeout (долгая обработка, сообщение передано к другому consumer).
36 -
29 +\\ENABLE_AUTO_COMMIT = false
30 +\\Может использоваться для дедупликации.
37 37  TransactionalInbox.
38 -)))
39 39  |(% style="width:128px" %)(((
40 40  Exactly‑Once
41 41  )))|(% style="width:1164px" %)Гарантия доставки строго один раз.
42 42  Гарантия отсутствия потерь и дублей.|(% style="width:1164px" %)Kafka transactions|(% style="width:1164px" %)
43 43  )))
44 -|(% style="width:108px" %) |(% style="width:1326px" %)(((
45 -|(% style="width:136px" %)TransactionalInbox|(% style="width:1216px" %)(((
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" %)
51 -)))
52 -|(% style="width:136px" %) |(% style="width:1216px" %)
53 -)))
54 54  |(% style="width:108px" %) |(% style="width:1326px" %)Более строгие гарантии могут давать большие накладные расходы (пропускная способность и задержка доставки).
55 55  
56 56