Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Архитектура микрослужб распределяет ответственность между независимыми службами. Эта независимость изменяет способ обработки следующих распространенных архитектурных проблем:
- Обслуживание согласованности данных без распределенных транзакций
- Управление обменом данными между службами
- Изоляция сбоев, чтобы предотвратить их каскадирование
- Устаревшая интеграция системы во время миграции
Шаблоны проектирования, приведенные в этой статье, напрямую решают эти проблемы. Каждый шаблон предназначен для конкретной проблемы, которая может возникнуть при проектировании, сборке и эксплуатации микрослужб.
Распространенные шаблоны проектирования
Антикоррупционный слой реализует фасадный или адаптерный слой между подсистемами, которые не используют одинаковую семантику. Этот шаблон преобразует запросы между подсистемами и предотвращает зависимости от устаревших систем или других служб, имеющих несовместимые модели домена, от ограничения структуры новой службы.
Бэкэнды для фронтэндов создают отдельные бэкенд-сервисы для различных типов клиентов, таких как десктоп и мобильные устройства. При таком подходе отдельная серверная служба не должна обрабатывать конфликтующие требования различных типов клиентов. Этот шаблон помогает упростить каждую микрослужбу, разделив проблемы, связанные с клиентом.
Переборка изолирует критически важные ресурсы, такие как пулы подключений, память и ЦП для каждой рабочей нагрузки или службы. Эта изоляция предотвращает использование всех ресурсов для одной рабочей нагрузки или одной службы. Этот шаблон повышает устойчивость рабочей нагрузки, препятствуя одной службе вызывать каскадные сбои.
Хореография позволяет каждой службе решать, когда и как обрабатывать бизнес-операцию, а не в зависимости от центрального оркестратора. Этот шаблон уменьшает связь между службами и поддерживает частые обновления или изменения служб.
Разделение ответственности запросов команд (CQRS) отделяет операции чтения от операций записи в отдельные модели данных. Этот шаблон повышает производительность, масштабируемость и безопасность в микрослужбах, где операции чтения и записи имеют различные требования к производительности или масштабированию.
Маршрутизация шлюза использует шлюз API в качестве обратного прокси-сервера для маршрутизации клиентских запросов в разные службы на основе запроса. Такой подход дает клиентам одну конечную точку вместо многих.
Агрегирование шлюза использует шлюз для объединения нескольких клиентских запросов в один запрос. Такой подход снижает избыточность общения между клиентами и службами.
Разгрузка шлюза централизует межсервисную функциональность, такую как завершение безопасного сокетного соединения (SSL), проверка подлинности, и ограничение скорости, в рамках шлюза, чтобы отдельные службы не должны были реализовывать эти задачи отдельно.
Дополнительные сведения см. в разделе шлюзов API для микрослужб.
Saga управляет согласованностью данных в микрослужбах с независимыми хранилищами данных. Сага — это последовательность локальных транзакций, в которых каждая служба выполняет свою операцию и запускает следующий шаг. Если шаг завершается ошибкой, сага выполняет компенсирующие транзакции, чтобы отменить предыдущие изменения. Этот шаблон заменяет распределенные транзакции, которые часто нецелесообразны в архитектуре микрослужб.
Sidecar развертывает вспомогательные компоненты приложения в виде отдельного контейнера или процесса для обеспечения изоляции и инкапсуляции. Используйте этот шаблон для подключения общих функций, таких как ведение журнала, мониторинг и конфигурация сети, к службе без внедрения в код службы.
Strangler Fig поддерживает добавочную миграцию из устаревшей системы, постепенно заменив определенные компоненты функций новыми службами. Потребители продолжают использовать тот же интерфейс, не зная, что миграция происходит, пока не будет полностью заменена устаревшая система.
Вспомогательные шаблоны
Взаимодействие между службами описывает шаблоны повторных попыток и разбиения цепи для устойчивых вызовов между службами.
Полный каталог шаблонов облачного проектирования в Центре архитектуры Azure см. в шаблонах проектирования облака.
Дальнейшие действия
- Учебный курс. Создание первой микрослужбы с помощью .NET
- Что такое микрослужбы?
- Архитектура микросервисов