В системе онлайн-обработки заказов на основе микросервисов, использующей хореографический подход саги с синхронными вызовами API, клиент размещает заказ, включающий несколько микросервисов: службу заказов, службу инвентаризации и службу платежей. После успешного размещения заказа служба инвентаризации уменьшает запасы, а служба платежей обрабатывает платеж. Если во время компенсационной транзакции по возврату суммы платежа после нескольких повторных попыток происходит сбой, как система может автоматически откатить обновление инвентаря без ручного вмешательства или введения единой точки сбоя, учитывая, что механизм очереди не используется и вся связь заблокирована? синхронно?
Мы работаем над системой на основе микросервисов для обработки онлайн-заказов. В нашей системе есть три основных сервиса: сервис заказов, сервис инвентаризации и сервис платежей. Когда клиент размещает заказ, эти службы работают вместе, чтобы управлять процессом: резервирование товаров, обновление запасов и обработка платежей.
Проблема, с которой мы сталкиваемся, заключается в том, как обрабатывать сбои и откаты. . Например, если процесс оплаты завершается неудачей после обновления запасов, нам необходимо отменить обновление запасов, чтобы обеспечить согласованность. Мы пытаемся решить эту проблему, используя подход саги-хореографии, в котором каждый сервис взаимодействует с другими посредством синхронных вызовов API.
Основная трудность – гарантировать, что компенсирующее действие, например возврат средств, платеж не удается, мы все равно можем отменить другие действия (например, обновление инвентаря) без ручного вмешательства. Мы не можем использовать очереди сообщений или другие асинхронные механизмы, что затрудняет координацию этих компенсаций и предотвращение несогласованностей. Мы ищем решение, которое сможет автоматически и надежно обрабатывать такие ситуации, не создавая ни единой точки отказа.
Мы попытались реализовать шаблон хореографии саги с синхронными вызовами API между нашими микросервисами ( Служба заказов, служба инвентаризации и служба платежей). Идея заключалась в том, что каждая служба будет вызывать следующую в очереди и обрабатывать компенсации, если что-то пойдет не так.
Вот что мы сделали:
Размещение заказа : Служба заказов создала заказ и вызвала Службу инвентаризации для обновления запасов.
Обновление запасов: Служба инвентаризации уменьшила запасы, а затем вызвала Службу платежей для обработки платежа.
Обработка платежей: Платеж Сервис обработал платеж и подтвердил транзакцию.
Мы ожидали, что в случае неудачи на каком-либо этапе сервисы позвонят друг другу для выполнения компенсирующих действий. Например, если платеж не прошел, будет вызвана служба инвентаризации, чтобы отменить обновление запасов.
Чего мы ожидали:
Автоматическая компенсация: мы ожидали, что система автоматически отменит предыдущие действия, если что-то пойдет не так, обеспечивая согласованность данных во всех службах.
Надежность: мы стремились к надежному процессу без ручного вмешательства, даже в случае сбоя, и без введения единой точки сбой.
Однако мы столкнулись с проблемами при обработке компенсационных транзакций, особенно когда они завершались неудачей после нескольких повторных попыток. Из-за этого было сложно поддерживать согласованность без ручного вмешательства, и нам нужен был способ гарантировать, что компенсации (например, откат обновлений инвентаря) могут быть надежно выполнены.
Подробнее здесь: https://stackoverflow.com/questions/788 ... oreography
Обработка компенсации и отката в синхронной хореографии Saga на основе API для микросервисов ⇐ C#
Место общения программистов C#
1722534810
Anonymous
В системе онлайн-обработки заказов на основе микросервисов, использующей хореографический подход саги с синхронными вызовами API, клиент размещает заказ, включающий несколько микросервисов: службу заказов, службу инвентаризации и службу платежей. После успешного размещения заказа служба инвентаризации уменьшает запасы, а служба платежей обрабатывает платеж. Если во время компенсационной транзакции по возврату суммы платежа после нескольких повторных попыток происходит сбой, как система может автоматически откатить обновление инвентаря без ручного вмешательства или введения единой точки сбоя, учитывая, что механизм очереди не используется и вся связь заблокирована? синхронно?
Мы работаем над системой на основе микросервисов для обработки онлайн-заказов. В нашей системе есть три основных сервиса: сервис заказов, сервис инвентаризации и сервис платежей. Когда клиент размещает заказ, эти службы работают вместе, чтобы управлять процессом: резервирование товаров, обновление запасов и обработка платежей.
Проблема, с которой мы сталкиваемся, заключается в том, как обрабатывать сбои и откаты. . Например, если процесс оплаты завершается неудачей после обновления запасов, нам необходимо отменить обновление запасов, чтобы обеспечить согласованность. Мы пытаемся решить эту проблему, используя подход саги-хореографии, в котором каждый сервис взаимодействует с другими посредством синхронных вызовов API.
Основная трудность – гарантировать, что компенсирующее действие, например возврат средств, платеж не удается, мы все равно можем отменить другие действия (например, обновление инвентаря) без ручного вмешательства. Мы не можем использовать очереди сообщений или другие асинхронные механизмы, что затрудняет координацию этих компенсаций и предотвращение несогласованностей. Мы ищем решение, которое сможет автоматически и надежно обрабатывать такие ситуации, не создавая ни единой точки отказа.
Мы попытались реализовать шаблон хореографии саги с синхронными вызовами API между нашими микросервисами ( Служба заказов, служба инвентаризации и служба платежей). Идея заключалась в том, что каждая служба будет вызывать следующую в очереди и обрабатывать компенсации, если что-то пойдет не так.
Вот что мы сделали:
Размещение заказа : Служба заказов создала заказ и вызвала Службу инвентаризации для обновления запасов.
Обновление запасов: Служба инвентаризации уменьшила запасы, а затем вызвала Службу платежей для обработки платежа.
Обработка платежей: Платеж Сервис обработал платеж и подтвердил транзакцию.
Мы ожидали, что в случае неудачи на каком-либо этапе сервисы позвонят друг другу для выполнения компенсирующих действий. Например, если платеж не прошел, будет вызвана служба инвентаризации, чтобы отменить обновление запасов.
Чего мы ожидали:
Автоматическая компенсация: мы ожидали, что система автоматически отменит предыдущие действия, если что-то пойдет не так, обеспечивая согласованность данных во всех службах.
Надежность: мы стремились к надежному процессу без ручного вмешательства, даже в случае сбоя, и без введения единой точки сбой.
Однако мы столкнулись с проблемами при обработке компенсационных транзакций, особенно когда они завершались неудачей после нескольких повторных попыток. Из-за этого было сложно поддерживать согласованность без ручного вмешательства, и нам нужен был способ гарантировать, что компенсации (например, откат обновлений инвентаря) могут быть надежно выполнены.
Подробнее здесь: [url]https://stackoverflow.com/questions/78822418/handling-compensation-and-rollback-in-a-synchronous-api-based-saga-choreography[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия