Изменения документа Диллема обработки сообщений
Редактировал(а) Alexandr Fokin 2024/06/12 16:21
отредактировано Alexandr Fokin
на 2020/08/09 15:23
на 2020/08/09 15:23
отредактировано Alexandr Fokin
на 2020/02/13 12:24
на 2020/02/13 12:24
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,32 +1,0 @@ 1 - 2 -Ситуация: 3 -Имееться очередь, из которой приложение читает данные и обрабатывает их. Рассмотрим пример, что приложение имеет следующий цикл обработки сообщения: 4 - 5 -1) Взять сообщение из очереди 6 -2) Попытаться выполнить некоторый набор действий на основе данных из сообщения. 7 -Отметим, что обработка сообщения может завершиться как успешно, так и с ошибкой. 8 - 9 -Вариации: 10 - 11 -1] 12 -1) Получаем сообщение 13 -2) Выполняем коммит (при следующем чтении на вход пойдет следующее сообщение) 14 -3) Выполняем обработку 15 - 16 -2] 17 -1) Получаем сообщение 18 -2) Выполняем обработку 19 -3) Если п.2 выполнен успешно, то выполняем коммит (при следующем чтении на вход пойдет следующее сообщение) 20 - 21 -Возможные проблемы 22 -1 При потходе 1, мы теряем сообщение, в случае если оно его обработка не завершилась успешно. 23 -2) При потходе 2, в случае, если после выполнения 2 пунтка наше приложение упадет (не успев выполнить пункт 3), то при повтроном запуске мы обработаем то-же самое сообщение второй раз. 24 - 25 -Вопросы 26 -1) Является ли повторная обработка одного и того же сообщения допустимой для нашей системы. 27 -2) Является ли потеря данных из одного из сообщений критичной для нашей системы 28 - 29 - 30 - 31 - 32 -