В чем разница между двухфазным фиксацией менеджера транзакций и подходом saga SE C? - PullRequest
0 голосов
/ 04 апреля 2020

Я занимаюсь исследованием микросервисной архитектуры. Я понимаю, что есть 3 подхода:

  1. 2 этапа фиксации

  2. SAGA

  3. Окончательная согласованность

У меня есть вопрос относительно двухэтапного подхода коммитов и сагового подхода.

В двухэтапном коммите есть менеджер транзакций. Где, как и в подходе саги, у нас есть сага-журнал и сага SE C. В обоих случаях мы дали ответственность центральной системе. Так в чем же разница?

1 Ответ

0 голосов
/ 04 апреля 2020

Саги из моего понимания предназначены для давних транзакций. По-другому, это может быть решением проблемы распределенной системы, которая должна быть завершена после внутренней или внешней координации различных систем. Основная идея c состоит в том, чтобы разбить всю транзакцию на несколько этапов или действий. Эти шаги могут выполняться в транзакциях атома c (единицах работы) и могут быть отменены / откатаны посредством реализации механизма повторного выполнения. Поскольку общие транзакции разбиты на несколько единиц работы, между отдельными единицами нет блокировки. Такая неблокирующая природа позволяет завершать длительные транзакции в минутах / часах или даже днях.

При 2 P C протокол работает в два этапа и является самым большим недостатком протокола двухфазного принятия. является то, что это протокол блокировки Это может быть приемлемо в рамках бизнес-системы (транзакции между службами будут достаточно быстрыми), но не идеально для долгосрочных или координируемых распределенных транзакций.

Сценарий использования Saga: если вы турагент, предоставляющий пакет праздники, ваши системы бронирования должны быть достаточно способными для завершения сквозной обработки пакета. Это включает в себя ваши услуги, проживание, короткие поездки, перелеты, питание, место и т. Д. c. В типичном сценарии система турагентов должна была бы выполнить серию координации между внутренним и внешним бизнесом, чтобы выполнить одну транзакцию, или выполнить откат, если один из участвующих бизнесов не сможет обслуживать.

2 P C сценарий использования: клиенту отправляется подтверждение по электронной почте, когда его продукт готов получить из магазина, при условии, что каждая задача обрабатывается несколькими системами.

...