Реализация устойчивых приложений

Совет

Это содержимое представляет собой отрывок из электронной книги, архитектуры микрослужб .NET для контейнерных приложений .NET, доступных в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно прочитать в автономном режиме.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

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

Устойчивость — это возможность восстановления после сбоев и продолжение работы. Исходить следует из того, что избежать сбоев невозможно, и на них нужно реагировать так, чтобы избежать простоев или потери данных. Цель устойчивости — вернуть приложение в полностью функционирующее состояние после сбоя.

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

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

Важно!

Для реализации устойчивости с помощью типизированных клиентов в приложении eShopOnContainer использовалась библиотека Polly вплоть до выпуска 3.0.0.

Начиная с выпуска 3.0.0, устойчивость вызовов HTTP реализуется с помощью сетки Linkerd, которая обеспечивает прозрачную и настраиваемую обработку повторных попыток в кластере Kubernetes, что избавляет от необходимости обрабатывать эти события в коде.

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

Предупреждение

Все примеры кода и изображения в этом разделе были допустимыми до использования Linkerd. Они не обновляются для представления текущего фактического кода. Поэтому их использование уместно в контексте этого раздела.