팁 (조언)
이 콘텐츠는 .NET Docs 또는 오프라인으로 읽을 수 있는 다운로드 가능한 무료 PDF로 제공되는 컨테이너화된 .NET 애플리케이션용 .NET 마이크로 서비스 아키텍처인 eBook에서 발췌한 내용입니다.
각 마이크로 서비스에는 해당 위치를 확인하는 데 사용되는 고유한 이름(URL)이 있습니다. 마이크로 서비스는 실행 중인 모든 위치에서 주소 지정이 가능해야 합니다. 특정 마이크로 서비스를 실행하는 컴퓨터에 대해 생각해야 하는 경우 상황이 빠르게 악화할 수 있습니다. DNS가 특정 컴퓨터에 대한 URL을 확인하는 것과 동일한 방식으로 마이크로 서비스에는 현재 위치를 검색할 수 있도록 고유한 이름이 있어야 합니다. 마이크로 서비스에는 실행 중인 인프라와 독립적으로 사용할 수 있는 주소 지정 가능한 이름이 필요합니다. 이 방법은 서비스 레지스트리가 있어야 하므로 서비스를 배포하는 방법과 검색 방법 간에 상호 작용이 있음을 의미 합니다. 동일한 맥락에서 컴퓨터가 실패하면 레지스트리 서비스가 현재 실행 중인 서비스를 나타낼 수 있어야 합니다.
서비스 레지스트리 패턴은 서비스 검색의 핵심 부분입니다. 레지스트리는 서비스 인스턴스의 네트워크 위치를 포함하는 데이터베이스입니다. 서비스 레지스트리는 고가용성 및 up-to-date여야 합니다. 클라이언트는 서비스 레지스트리에서 가져온 네트워크 위치를 캐시할 수 있습니다. 그러나 해당 정보는 결국 만료되고 클라이언트는 더 이상 서비스 인스턴스를 검색할 수 없습니다. 따라서 서비스 레지스트리는 일관성을 유지하기 위해 복제 프로토콜을 사용하는 서버 클러스터로 구성됩니다.
일부 마이크로 서비스 배포 환경(클러스터라고 함, 이후 섹션에서 설명) 서비스 검색이 기본 제공됩니다. 예를 들어 AKS(Azure Kubernetes Service) 환경은 서비스 인스턴스 등록 및 등록 취소를 처리할 수 있습니다. 또한 서버 쪽 검색 라우터의 역할을 수행하는 각 클러스터 호스트에서 프록시를 실행합니다.
추가 리소스
크리스 리처드슨. 패턴: 서비스 레지스트리
https://microservices.io/patterns/service-registry.htmlAuth0. 서비스 레지스트리
https://auth0.com/blog/an-introduction-to-microservices-part-3-the-service-registry/가브리엘 셴커. 서비스 발견
https://lostechies.com/gabrielschenker/2016/01/27/service-discovery/
.NET