Spring Cloud로 개발하는 MSA/API Gateway Service

API Gateway Service

webmaster 2022. 5. 3. 14:16
728x90

클라이언트 대신 동작하고, 응답을 제공하는 프록시 역할을 한다.

이전의 마이크로서비스

  • 클라이언트 사이드에서 마이크로 서비스를 직접 호출(앤드 포인트) 하기에 MicroService가 변경되거나 추가가 되면 클라이언트 사이드에 영향이 있다.
    • 코드를 수정하여 빌드베포를 다시 해야 한다.

이러한 문제를 해결한 API Gateway를 만들자

  • 클라이언트로부터 들어오는 요청을 API Gateway에서 모두 처리해준다.
    • 직접적으로 MicroService를 접근하지 않고 API Gateway에 접근한다.
  • 장점
    • 인증 및 권한 부여
    • 서비스 검색 통합
    • 응답 캐싱
    • 정책, 회로 차단기 및 QoS 다시 시도
    • 속도 제한
    • 부하 분산
    • 로깅, 추적, 상관관계
    • 헤더, 쿼리 문자열 및 청구 변환
    • IP 허용 목록에 추가

Netflix Ribbon

Client Side Load Balancer 

  • 서비스 이름으로 호출
  • Health check

Ribbon

  • 클라이언트에 내장되어 있으며, 클라이언트에서 Ribbon을 통해 API Gateway 동작을 하게 된다.
  • 더 이상 IP : Port를 통해 MicroService를 접근하지 않고, MicroService을 이름을 통해 접근한다.
  • SpringCloudRibbon 은 SpringBoot2.4에서 Maintence 상태( 더 이상 스프링에서 관리 X)

Netflix Zuul

Netflix Zuul

  • GateWay 역할을 해준다
  • 클라이언트에서는 Netflix Zuul에만 요청을 보내고, 응답을 받는다.
  • SpringCloudZuul 은 SpringBoot2.4 에서 Maintence 상태( 더이상 스프링에서 관리 X)
728x90