inblog logo
|
광부의 채광일지

    Spring Cloud Gateway 알아보기(1)

    광부's avatar
    광부
    May 05, 2024
    Spring Cloud Gateway 알아보기(1)
    Contents
    필요성API 게이트웨이란?API 게이트웨이의 주요 기능Spring Cloud Gateway 란?

    필요성

    • MSA 방식으로 개인 프로젝트를 진행하며, 공통된 기능(Jwt인증, API 별로 호스트 포트넘버 매핑)을 반복하다 보니 API gateway의 필요성을 느끼게 되었다.
    • 지난 학기 프로젝트에서 nginx의 리버스 프록시 기능을 활용하여 요청을 전달했었는데, 라우팅외에 더 강력한 기능이 있는 gateway를 사용해 보기로 하였다.

    API 게이트웨이란?

    MicroService Architecture(MSA)를 구성하는 다양한 기능 요소 중 External Gateway로 분류된 기능에 속하는 것이 API Gateway이다. MSA는 세부적인 서비스가 모듈 단위로 구성되어 있기에 Gateway를 사용하여 요청을 라우팅하여 엔드포인트를 단일화 해주는 기능을 제공한다. + 그리고 서비스의 필수 기능들을 모든 마이크로 서비스마다 구현하기에는 작업량이 늘어나기에 공통된 필수 기능 요소들을 제공해주는 역할 도 한다.
     

    API 게이트웨이의 주요 기능

    1. 인증과 인가
    1. API 라우팅
    1. QoS
    1. 로깅 및 모니터링
    1. 입력 유효성 검사
    출처)https://s-core.co.kr/insight/view/spring-cloud-gateway-기반의-api-게이트웨이-구축/

    Spring Cloud Gateway 란?

    Spring WebFlux 혹은 WebMVC 위에서 API Gateway를 구축하기 위해 제공되는 라이브러리.

    Spring Cloud Gateway의 기능

    • Able to match routes on any request attribute
      • 요청의 헤더, 쿼리 파라미터, HTTP 메서드 등에 따라 다른 경로로 라우팅
    • Predicates and filters are specific to routes
      • Predicates(선언자)와 filters(필터)는 각각의 라우트에 특정되어 있고, 라우트에 따라 서로 다른 조건과 작업을 수행할 수 있게 해준다.
    • Circuit Breaker integration
      • Circuit Breaker 패턴을 지원하여 서비스 간의 통신 중 발생하는 지연, 실패 등의 장애를 처리하고 이후 요청을 빠르게 실패하도록 설정한다.
    • Spring Cloud DiscoveryClient integration
      • Spring DiscoveryClient와 통합하여 서비스 디스커버리를 지원한다. 이를 통해 서비스의 위치를 자동으로 감지하고 요청을 라우팅할 수 있다.
    • Easy to write Predicates and Filters
      • 사용자가 쉽게 Predicates와 Filters를 작성할 수 있도록 지원함.
    • Request Rate Limiting
      • 요청 속도 제한을 설정할 수 있음. 과도한 요청으로 인한 서비스 부하를 방지하고 안정성을 유지할 수 있음.
    • Path Rewriting
      • 요청 경로를 재작성할 수 있음. 게이트웨이로 들어오는 요청의 경로를 수정하여 백엔드 서비스로 전달할 수 있음. 클라이언트에 노출되는 경로와 내부 서비스의 경로를 분리하는데 용이하며 Location transparency를 제공함. (내부 서비스의 host, port를 클라이언트가 몰라도 됨)
     
     
    Share article
    Contents
    필요성API 게이트웨이란?API 게이트웨이의 주요 기능Spring Cloud Gateway 란?

    광부의 채광일지

    RSS·Powered by Inblog