Изменения документа Гарантии доставки
Редактировал(а) Alexandr Fokin 2026/07/27 03:09
От версии 1.11
отредактировано Alexandr Fokin
на 2026/07/19 13:29
на 2026/07/19 13:29
Изменить комментарий:
К данной версии нет комментариев
К версии 1.1
отредактировано Alexandr Fokin
на 2026/07/19 12:55
на 2026/07/19 12:55
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -11,10 +11,9 @@ 11 11 At‑Most‑Once 12 12 )))|(% style="width:1164px" %)Гарантия доставки не более одного раза. 13 13 Гарантируется, то не будет дублей, но допускаются потери.|(% style="width:1164px" %)Без подтверждения доставки и повторных отправок (гарантирует отсутствие дублей), но сообщение может быть потеряно на фазе отправки (т.к. без подтверждения). 14 -\\Acks = None14 +\\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