Поделиться через


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

Подсказка

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

Архитектура микросервисов .NET для приложений .NET в контейнерах, миниатюра обложки электронной книги.

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

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

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

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

Это важно

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

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

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

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