#Собеседования #Архитектура #Микросервисы #Транзакции #Saga

Новый пост на канале: https://t.me/legko_v_it/344

Хочу продолжить нашу тему про транзакции рассказом об архитектурном паттерне Saga а так же про два подхода к управлению микросервисами: хореографию и оркестрацию. Они помогают организовать взаимодействие между сервисами в сложных системах.

Хореография В хореографии каждый микросервис сам знает, что делать и когда. Представь танец, где каждый танцор знает свои движения и выполняет их, реагируя на других танцоров. В контексте микросервисов это означает, что каждый сервис сам принимает решения на основе событий, которые он получает.

Плюсы: * Меньше центрального управления, что делает систему более гибкой. * Сервисы меньше зависят друг от друга.

Минусы: * Сложнее отлаживать и понимать, что происходит в системе. * Требуется хорошо продуманная схема событий. * Оркестрация

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

Плюсы: * Более понятная и контролируемая структура. * Легче отлаживать и отслеживать выполнение процесса.

Минусы: * Централизованное управление может стать узким местом. * Увеличенная зависимость от оркестратора.

Пример в контексте Saga Возьмём тот же пример с интернет-магазином.

Хореография: Сервис заказа создает заказ и публикует событие "order_created". Сервис проверки наличия товара ждет это событие, проверяет наличие и публикует событие "stock_confirmed". Сервис оплаты слушает "stock_confirmed" и проводит оплату, публикуя "payment_processed". Если что-то пойдет не так, каждый сервис отправляет свои "компенсирующие" события, отменяющие его действия.

Оркестрация: Оркестратор начинает процесс, отправляя команду сервису заказа. Получив подтверждение, оркестратор командует сервису проверки наличия товара. После проверки оркестратор отправляет команду на оплату. В случае ошибки оркестратор сам инициирует откат.

В итоге, оба подхода имеют свои сильные и слабые стороны, и выбор между ними зависит от конкретных требований и архитектуры системы.

repost

155

input message

напишите коммент

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь