본문 바로가기

MicroService Architecture/Microservice Design Pattern

서비스 검색(Service Discovery) 패턴

서비스 검색 패턴은 다음과 같은 문제점, 솔루션, 해결책의 필요 조건이 있다.

 

문제점

 

클라이언트가 마이크로서비스와 그 인스턴스를 찾을 수 있어야 한다.

 

컨테이너 등에서 실행되는 마이크로서비스 인스턴스는 시작하면서 동적 IP 주소를 할당 받는게 일반적이다. 이런 상황은 마이크로서비스가 노출하는 HTTP 기반의 REST API를 클라이언트에서 호출하는 것을 어렵게 한다.

 

 

해결책

 

현재 사용 가능한 마이크로서비스와 그 인스턴스를 추적하는 새 컴포넌트(서미스 검색 서비스)를 시스템 환경에 추가한다.

 

해결책의 필요 조건

 

- 마이크로서비스와 마이크로서비스 인스턴스를 자동으로 등록 및 등록 해지한다.

- 클라이언트는 마이크로서비스의 논리 엔드포인트에 요청을 보낼 수 있어야 한다. 요청은 사용 가능한 마이크로서비스 인스턴스 중 하나로 라우팅된다.

- 마이크로서비스에 대한 요청은 가용 인스턴스로 로드 밸런싱돼야 한다.

- 요청을 라우팅하지 않고자 상태가 비정상인 인스턴스를 감지할 수 있어야 한다.

 

구현 참고: 이 디자인은 두 가지 전략을 사용해 구현할 수 있다.

 

- 클라이언트 측 라우팅: 클라이언트는 서비스 검색 서비스와의 통신을 지원하는 라이브러리를 사용해 요청을 보낼 만한 인스턴스를 찾는다.

- 서버 측 라우팅: 서비스 검색 서비스의 인프라는 모든 요청을 전달하는 리버스 프록시(reverse proxy)를 노출한다. 리버스 프록시는 클라이언트를 대신해 적절한 마이크로 서비스 인스턴스로 요청을 전달한다.

 

'MicroService Architecture > Microservice Design Pattern' 카테고리의 다른 글

분산 추적  (0) 2021.03.06
로그 분석 중앙화  (0) 2021.03.05
구성 중앙화  (0) 2021.03.05
리액티브 마이크로서비스(Reactive Microservice)  (0) 2021.03.05
에지 서버 패턴  (0) 2021.03.05