* 현재 문서는 Spring cloud 공식 문서를 참조하여 작성하였습니다.
https://spring.io/projects/spring-cloud-gateway
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 |