일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리눅스
- eclipse
- 메시지
- Chat gpt
- linux
- 모니터링 및 경고 중앙화
- 가상머신 차이
- GIT
- MAC
- chat API
- crontab
- sh
- AWS
- 도커
- Catalina
- 정규표현식
- 분산추적
- 네이버클라우드플랫폼
- application 재기동
- ChatGPT
- desktop
- error
- 네이버웍스
- 제어루프
- 마이크로서비스 패턴
- docker
- 알림
- GitLab
- 자바 정규식
- MSA
- Today
- Total
시간나는대로 틈틈히 정리 합시다~~!!!
[마이크로서비스 디자인 패턴] 서비스 검색 (Service discovery) 본문
1. 문제점
클라이언트가 마이크로서비스와 그 인스턴스를 찾을 수 있어야 한다.
일반적으로 컨테이너 등에서 실행되는 마이크로서비스 인스턴스는 시작하면서 동적 IP 를 할당 받는다.
그러다 보니 클라이언트에서는 마이크로서비스가 노출하는 HTTP 기반의 REST API를 호출하기 쉽지 않다.
2. 해결책
현재 사용 가능한 마이크로서비스와 그 인스턴스를 추적하는 새 컴포넌트(서비스검색 서비스)를 시스템 환경에 추가한다.
- 마이크로서비스와 마이크로서비스 인스턴스를 자동으로 등록 및 해지한다.
- 클라이언트는 마이크로서비스의 논리 엔드포인트에 요청을 보낼 수 있어야 한다.
- 요청은 사용 가능한 마이크로서비스 인스턴스 중 하나로 라우팅된다.
- 마이크로서비스에 대한 요청은 가용 인스턴스로 로드밸런싱 되어야 한다.
- 요청을 라우팅 하지 않기 위해 상태가 비정상인 인스턴스를 감지할 수 있어야 한다.
3. 구현 참고
- 클라이언트 측 라우팅 : 클라이언트는 서비스 검색 서비스와의 통신을 지원하는 라이브러리를 사용해
요청을 보낼 만한 인스턴스를 찾는다.
- 서버 측 라우팅 :
> 서비스 검색 서비스의 인프라는 모든 요청을 전달하는 리버스 프록시(reverse proxy)를 노출한다.
> 리버스 프록시는 클라이언트를 대신해 적절한 마이크로서비스 인스턴스로 요청을 전달한다.
4. 구현된 오픈소스 도구
- 스프링 클라우드 : 넷플릭스 유레카(Eureka), 넷플릭스 리본(Ribbon)
- 쿠버네티스 : kube-proxy, 서비스(Service) 리소스
'IT' 카테고리의 다른 글
[마이크로서비스 디자인 패턴] 리액티브 마이크로서비스 (Reactive Microservice) (0) | 2021.03.27 |
---|---|
[마이크로서비스 디자인 패턴] 에지 서버 (edge server) (0) | 2021.03.27 |
[Java] 정규표현식 문법 (0) | 2021.03.25 |
[Linux] Crontab 간단 설명 (0) | 2021.03.25 |
[Java] 정규표현식 메일 (0) | 2021.03.25 |