Паттерны реализации
Паттерны декомпозиции на микросервисы
Decompose By Business Capability - это шаблон микросервиса, основанный на разделении системы на модули или компоненты, каждый из которых отвечает за определенную бизнес-возможность. Этот подход позволяет уменьшить сложность системы, улучшить ее масштабируемость и обеспечить гибкость в изменении требований бизнеса.
Decompose By Subdomain - этот шаблон микросервиса предполагает разделение системы на множество подсистем, каждая из которых соответствует определенной предметной области или домену. Этот подход помогает улучшить модульность системы, уменьшить сложность и улучшить производительность. Шаблон основан на концепциях предметно-ориентированного проектирования ().
Паттерны управления данными в микросервисной архитектуре
Database Per Service - это шаблон микросервиса, в котором каждый сервис имеет свою собственную базу данных, что позволяет улучшить масштабируемость, доступность и изоляцию данных. Этот шаблон подходит для систем со множеством сервисов и большим объемом данных, требующих высокой производительности и гибкости.
Command Query Responsibility Segregation (CQRS) - это шаблон микросервисов для разделения команд (Commands) и запросов (Queries). Он разделяет процессы обработки команд, изменяющих состояние системы, и процессов обработки запросов, возвращающих текущее состояние системы. CQRS позволяет увеличить масштабируемость и гибкость системы, а также улучшить ее производительность и удобство использования.
Event Sourcing - это шаблон архитектуры микросервисов, основанный на сохранении и обработке хронологического списка событий, которые приводят к изменению состояния системы. Он используется в системах, где требуется высокая степень гибкости и возможности восстановления состояния, а также для реализации CQRS (Command Query Responsibility Segregation) и Event-based Architectures.
Saga Pattern - это шаблон архитектуры микросервисов, используемый для обработки сложных бизнес-транзакций, состоящих из нескольких независимых шагов. Он координирует выполнение шагов в нужной последовательности и обрабатывает возникающие ошибки, гарантируя тем самым успешное завершение всей транзакции.
Паттерны коммуникации микросервисов
API Gateway - это шлюз, который направляет запросы от внешних приложений или сервисов к внутренним API. Он обеспечивает централизованную обработку всех входящих запросов, позволяя микросервисам не отвлекаться на управление доступом. API Gateway также может кэшировать ответы сервисов для повышения производительности и безопасности системы.
Backends for Frontends (BFF) - это шаблон микросервиса, предназначенный для оптимизации взаимодействия между интерфейсами (фронтендами) и внутренними сервисами. BFF обеспечивает единую точку доступа для фронтендов, упрощает интеграцию с различными бэкендами и улучшает масштабируемость системы в целом.
Паттерны обнаружения сервисов в микросервисной архитектуре
Service Registry - это шаблон проектирования архитектуры микросервисов, который используется для регистрации и обнаружения сервисов в системе. Он предоставляет механизм для хранения информации о доступных сервисах, их местоположении и поддерживаемых операциях. Service Registry позволяет другим микросервисам находить нужные им сервисы и взаимодействовать с ними, уменьшая сложность и повышая масштабируемость системы.
Паттерны повышения отказоустойчивости
Circuit Breaker - шаблон проектирования архитектуры микросервисов, предназначенный для управления ошибками и обеспечения стабильности системы. Он позволяет изолировать группы зависимых операций, чтобы предотвратить распространение ошибок между сервисами. Circuit Breaker анализирует количество и длительность сбоев в определенном сервисе и автоматически переключает его в режим “break” или “reset”, регулируя таким образом поток запросов к ненадежным сервисам.
Bulkhead Pattern - шаблон микросервиса, который разделяет систему на логические разделы (модули или компоненты) и обеспечивает изоляцию сбоев между ними. Он гарантирует, что в случае сбоя одного модуля другие продолжат работать, предотвращая тем самым распространение ошибок и обеспечивая стабильность системы.
Источники:
https://microservices.io/patterns/index.html (подробнее: eng)
Last updated