Файл: Шаблоны проектирования Автоматическое прерывание (Circuit Breaker).docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 19

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Многие современные приложения нужно проектировать в масштабе предприятия или даже всего интернета. Все они должны отвечать требованиям масштабируемости, доступности, безопасности, надежности и отказоустойчивости
Шаблоны проектирования:

1. Автоматическое прерывание (Circuit Breaker)

КИЭШ: Когда сервис зависит от другого удаленного сервиса, и есть вероятность его отказа в некоторых сценариях. Когда сервис имеет очень высокую зависимость (например, сервисы мастер-данных).

КНСИЭШ: Когда вы имеете дело с локально-зависимыми объектами, автоматическое прерывание может привести к чрезмерному потреблению ресурсов.
2. Разделение ответственности команд и запросов (CQRS)

Он основан на принципе разделения операций чтения (запрос) и записи/обновления (команда) в хранилище данных.

КИЭШ: При масштабировании приложения, когда ожидается огромное количество операций чтения и записи. Если вы хотите отдельно настроить производительность для операций чтения и записи. Когда операции чтения происходят практически в реальном времени или же последовательно.

КНСИЭШ: Когда вы создаете обычное приложение CRUD, в котором не ожидается огромного количества одновременных операций чтения и записи.
3. Определение источников событий

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


4. Определение источников событий

КИЭШ: Когда регулярные CRUD-операций недостаточно удовлетворяют требованиям. Когда существует потребность в постоянной ревизии и воспроизведении событий для сохранения текущего и прошлого состояния приложений.

КНСИЭШ: Когда регулярных CRUD-операций достаточно, чтобы удовлетворить потребности пользователя.
5. Шаблон расширения (Sidecar)

КИЭШ: Когда вы имеете дело с множеством однообразных микросервисов в области продукта.

Когда вы имеете дело с устаревшими приложениями, которые не справляются с новыми проблемами коммуникации и безопасности.

КНСИЭШ: Когда вы имеете дело с ограниченным количеством взаимодействующих сервисов.

В небольших приложениях, где развертывание внешних устройств неэкономично или неудобно в эксплуатации.
6. Backend-for-Frontend (BFF)

КИЭШ: Когда вы хотите предоставлять продукт/услугу для разных клиентов (мобильных и стационарных устройств).

Когда вы хотите оптимизировать ответ для конкретного типа клиента.

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

КНСИЭШ: Когда ожидается, что пользовательский интерфейс будет единым для всех.

Когда ожидается, что мобильные и компьютерные приложения будут демонстрировать аналогичную информацию и предоставлять аналогичную функциональность.
7. Подавление (Strangler)

КИЭШ: Когда вы переносите или модернизируете сложное, сильно зависимое приложение, например в случаях миграции ERP-систем.

КНСИЭШ: Когда переход достаточно прост, а прямая замена  —  наилучший вариант.