Spring Cloud

[SPRING CLOUD] API Gateway

오늘도개발 2024. 11. 6. 19:37

 

* 현재 문서는 Spring cloud 공식 문서를 참조하여 작성하였습니다.

https://spring.io/projects/spring-cloud-gateway

 

Spring Cloud Gateway

This project provides a libraries for building an API Gateway on top of Spring WebFlux or Spring WebMVC. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting concerns to them such as: security, monitor

spring.io

 

 

1. Spring Cloud API Gateway 란?

 

 - Spring WebFlux 또는 Spring WebMVC 위에 API Gateway를 구축하기 위한 라이브러리를 제공

 

  - 아키텍처에서 Client와 내부 서비스 간의 요청을 관리하고 라우팅하는 데 사용

     (여러 마이크로서비스에 대한 접근을 단일 진입점으로 제공)

 

 

2. 특징

 

  - 라우팅 : Spring Cloud Gateway의 핵심 기능으로, 클라이언트 요청을 특정 서비스로 전달하는 작업

 

  - 필터링 : 요청과 응답에 다양한 필터를 적용할 수 있음 ( 인증, 로깅, 수정 등 )

 

  - 로드 밸런싱 :  여러 인스턴스로 구성된 마이크로서비스에 대해 라운드 로빈(Round Robin) 방식 등 지원

 

  - 보안 : 스프링 시큐리티(Spring Security)와 연동하여 인증과 권한 관리를 할 수 있음

 

 - 모니터링 및 로깅: 요청의 상태나 응답 시간을 모니터링하고, 로깅을 통해 API 게이트웨이를 통한 트래픽 흐름 추적

 

 

 

3. 예시

 

다음과 같이 api-gateway 서버를 생성한후 yml 파일로 라우팅 설정을 할 수 있다.

 

spring:
  cloud:
    gateway:
      httpclient:
        connect-timeout: 500
        response-timeout: 1000
      routes:
        - id: auction-service
          uri: http://localhost:8081
          predicates:
            - Path=/v1.0/auctions/**
        - id: deposit-service
          uri: http://localhost:8082
          predicates:
            - Path=/v1.0/deposits/**

'Spring Cloud' 카테고리의 다른 글

[SPRING CLOUD] eureka discovery client  (0) 2024.11.06
[SPRING CLOUD] eureka server  (0) 2024.11.06
[SPRING CLOUD] 스프링 클라우드란?  (2) 2024.11.05