Файл: Шаблоны проектирования Автоматическое прерывание (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-систем.
КНСИЭШ: Когда переход достаточно прост, а прямая замена — наилучший вариант.