API Gateway Service

CHEESE·2022년 8월 23일
0

Spring Cloud + MSA

목록 보기
6/13
post-thumbnail

API Gateway

  • 사용자가 설정한 라우팅 설정에 따라서 각각 엔드포인트로 클라이언트 대신 요청하고 응답받은 데이터를 클라이언트에 다시 전달해줌
  • 내부 구조를 숨기고 외부의 요청에 대해 적절한 형태로 가공해서 응답할 수 있다.
  • MSA로 서비스가 분리됨에 따라 단일 진입점이 필요하게 되었다.

기능

  • 인증 및 권한 부여
  • 서비스(MSA) 검색 통합
  • 응답 캐싱
  • 정책 관리
  • 회로 차단기 및 QoS
  • 속도 제한
  • 부하 분산
  • 로깅, 추적(각 서비스 간 연쇄 호출이 일어날 경우), 상관 관계
  • 헤더, 쿼리 문자열 및 청구 변환
  • IP 허용 목록

Spring cloud에서의 MSA 간 통신

RestTemplate

일반적으로 사용되는 API

Feign Client

특정 인터페이스를 만들고 마이크로서비스의 이름을 @FeignClient로 등록하여 직접적인 주소나 포트번호를 숨기고 이름만으로 호출할 수 있게끔 추상화

Spring Cloud에서는 🔍

Netflix Ribbon

Client side load balancer
비동기 처리가 잘 되지 않는 방식으로 최근에는 사용되지 않음 -> deprecated
서비스 이름만으로 호출
Health check를 통해 해당 서비스가 정상 동작중인지 확인 가능
Spring Boot 2.4에서 Maintenance 상태로 전환
Spring Cloud Loadbalancer API로 우회를 권장

Netfilx Zuul

API Gateway
Spring Boot 2.4에서 Maintenance 상태로 전환 -> deprecated
Spring Cloud Gateway API로 우회를 권장

0개의 댓글