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

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

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

Сводка

Подробности

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