Изменения документа Диллема обработки сообщений

Редактировал(а) Alexandr Fokin 2024/06/12 16:21

<
От версии < 3.1 >
отредактировано Alexandr Fokin
на 2020/08/09 15:29
К версии < 5.1 >
отредактировано Alexandr Fokin
на 2020/08/09 15:35
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Название
... ... @@ -1,1 +1,1 @@
1 -Обработка с транзакцией
1 +Диллема обработки сообщений
Содержимое
... ... @@ -24,12 +24,17 @@
24 24  
25 25  Вопросы
26 26  1) Является ли повторная обработка одного и того же сообщения допустимой для нашей системы.
27 -2) Является ли потеря данных из одного из сообщений критичной для нашей системы
28 -3) Использование потхода номер 2 совместно с каким-либо более мродвинутым механизмом транзакции. Т.е в случае падения приложения транзакция не будет завершена успешно.
29 -Но еть риск если у нас выполняются 2 действия:
27 +2) Является ли потеря данных из одного из сообщений критичной для нашей системы.
28 +3) Возможно в нашей системе производитель сообщение, генерирует сообщенеи повторно через некоторой промежуток времени, если фиксирует, что предыдущее сообщение не было обработано.
29 +
30 +
31 +Более надежное, но более тяжелое решение:
32 +Использование потхода номер 2 совместно с каким-либо более продвинутым механизмом транзакций. Т.е в случае падения приложения транзакция не будет завершена успешно.
33 +Но есть риск если у нас выполняются 2 действия:
30 30  1) коммит транзакции в базе, 2) коммит сообщения. (или в порядке 2, 1)
31 31  В случае падения приложения между указанными шагами, мы все равно можем получить
32 -либо потерю (из-за незавершенной транзакции), либо повторнуб обработку из-за незакоммиченного сообщения очреди.
36 +либо потерю сообщения (закоммитили сообщение, но не завершили транзацию),
37 +либо повторную обработку (завершили транзакцию, но не закоммитил сообщение).
33 33  Хоть и вероятность такого события в целом крайне мала. (зависит от системы)
34 34  
35 35