Как ACID работает в спокойной архитектуре микросервисов - PullRequest
0 голосов
/ 27 августа 2018

Я довольно новичок в реализации микросервисной архитектуры, и этот вопрос меня не решает

Как микросервисная архитектура обращается к транзакционному механизму между различными вызовами конечных точек.

Примером являются банковские услугиОсновываясь на микросервисной архитектуре, в основном, банковская операция заключается в том, что разные вызовы для разных сервисов завершают транзакцию, если один из них завершается неудачно, то нет способа устранить частичный процесс, я не знаю, существует ли какой-либо механизм для решенияэта проблема

создать платеж

POST / платежи / клиент / 10 / платеж / 100 /

дебетовые деньги со счета

PUT / клиенты / 10 / счета / 20

Отправить уведомление клиента

POST / оповещения / клиенты / 10

1 Ответ

0 голосов
/ 27 августа 2018

Ответ заключается в том, что ваш API просто не предоставляет никаких методов, позволяющих создать недопустимое состояние.

Каждый метод должен выполнить полную и действительную транзакцию.Например, вместо методов добавления и удаления денег со счетов, у вас есть методы, которые переводят деньги между счетами.Любое ведение учета или уведомления, которые должны происходить, когда вы переводите деньги, должны выполняться (или, по крайней мере, помещаться в очередь) этими методами тоже.

Иногда для этого требуется создание специальных «действительных» состояний для транзакций, которые выв противном случае может считаться неполным.Например, когда вы резервируете места в театре, то есть место, где ваши места зарезервированы до определенного времени (5 минут или около того), когда вы их не оплатили.

...