Zuul

Hayoung Kim·2022년 6월 3일
0

MSA

목록 보기
3/5

Zuul

Netflix에서 사용하는 JVM 기반의 라우터이자 로드밸런서
API Gateway로 사용됨

[용도]

  • 인증과 보안 : 리소스에 대한 인증 정보를 식별하고, 인증이 되지 않는 경우 요청 거부
  • 모니터링과 분석 : 서비스 상세를 파악하기 위해, 의미있는 정보와 통계를 추적
  • 로드밸런싱 & 동적 라우팅 : client의 요청에 따라 적절한 backend service를 로드밸런싱 하고 연결(라우팅)
  • 로깅 : 유통되는 트래픽 로깅
  • 트래픽 조정
  • 그 외...

API Gateway를 사용하는 이유

API Gateway는 요청자인 Client와 API 제공자인 Backend service를 연결하는 중계자로 API Gateway를 통해 데이터를 유통한다.
안전한 API유통과 Client 요청별로 유연하게 대처하기 위해 API Gateway가 필요하다.
Client 요청에 유연하게 대응한다는 의미는 Client 유형(웹브라우저, 모바일앱 등)에 따라 맞는 API를 연결한다거나, Client를 사용하는 사용자의 권한이나 속성에 따라 적절한 결과를 리턴해주는것.

사용예시

  • 예시상황
    • 상품주문 항목 중 주소란 옆의 '주소찾기'를 클릭한 후 찾을 주소 keyword를 입력하고 '검색' 버튼 클릭시 '주소검색 마이크로서비스'의 '주소찾기API'를 호출하는 경우

👉 Web 프로그램 또는 모바일앱에서 API를 호출 : /address/search_addr/{주소 키워드}
👉 zuul은 연결할 backend service의 id를 config파일에서 읽어 라우팅함
👉 /address/search_addr API가 호출되었으므로 service id가 address인 마이크로서비스를 연결해야함
👉 zuul은 자동으로 eureka에서 service id 가 address인 마이크로서비스를 찾아 그 주소로 라우팅 함

한계점

2018.12 부터 더 이상의 기능 개선 없이 유지만 하는 Maintenace Mode로 변경되어 Spring boot 2.4.x부터는 zuul, hystrix 가 더 이상 제공되지 않는다.
👉 Spring Cloud 커뮤니티에서 zuul 대신 권고하고 있는 API Gateway는 Spring Cloud Gateway이다.

0개의 댓글