다음을 통해 공유


복원력 있는 애플리케이션 구현

팁 (조언)

이 콘텐츠는 .NET Docs 또는 오프라인으로 읽을 수 있는 다운로드 가능한 무료 PDF로 제공되는 컨테이너화된 .NET 애플리케이션용 .NET 마이크로 서비스 아키텍처인 eBook에서 발췌한 내용입니다.

컨테이너화된 .NET 애플리케이션을 위한 .NET 마이크로서비스 아키텍처 eBook의 표지 썸네일.

마이크로 서비스 및 클라우드 기반 애플리케이션은 결국 발생할 부분적인 오류를 수용해야 합니다. 이러한 부분 오류에 대해 복원력이 있도록 애플리케이션을 디자인해야 합니다.

복원력은 오류를 복구하고 계속 작업을 진행하는 기능입니다. 오류를 방지하는 것이 아니라 오류가 발생한다는 사실을 받아들이고 가동 중지 시간 또는 데이터 손실을 방지하는 방식으로 응답하는 것입니다. 복원력의 목표는 실패 후 애플리케이션을 완전히 작동하는 상태로 되돌리는 것입니다.

마이크로 서비스 기반 애플리케이션을 설계하고 배포하는 것은 매우 어려운 일입니다. 그러나 어떤 종류의 오류가 확실한 환경에서 애플리케이션을 계속 실행해야 합니다. 따라서 애플리케이션은 복원력이 있어야 합니다. 클라우드에서 네트워크 중단 또는 노드 또는 VM 충돌과 같은 부분적인 오류에 대처하도록 설계되어야 합니다. 클러스터 내의 다른 노드로 이동하는 마이크로 서비스(컨테이너)조차도 애플리케이션 내에서 간헐적으로 짧은 오류가 발생할 수 있습니다.

애플리케이션의 여러 개별 구성 요소도 상태 모니터링 기능을 통합해야 합니다. 이 챕터의 지침에 따라 일시적인 가동 중지 시간 또는 복잡한 클라우드 기반 배포에서 발생하는 일반적인 딸랑이에도 불구하고 원활하게 작동할 수 있는 애플리케이션을 만들 수 있습니다.

중요합니다

eShopOnContainer는 릴리스 3.0.0까지 Typed Clients를 사용하여 복원력을 구현하기 위해 Polly 라이브러리를 사용했습니다. 릴리스 3.0.0부터 HTTP 호출 복원력은 코드에서 이러한 문제를 처리하지 않고도 Kubernetes 클러스터 내에서 투명하고 구성 가능한 방식으로 재시도를 처리하는 링커드 메시를 사용하여 구현됩니다.

Polly 라이브러리는 서비스를 시작하는 동안 데이터베이스 연결에 복원력을 추가하는 데 사용됩니다.

경고

이 섹션의 모든 코드 샘플 및 이미지는 Linkerd를 사용하기 전에 유효했으며 현재 실제 코드를 반영하도록 업데이트되지 않았습니다. 따라서 이 섹션의 컨텍스트에서 의미가 있습니다.