Spring Cloud Gateway란?
- 외부의 요청을 받아서 각각의 비즈니스 로직을 처리하는 MSA에 전달하는 역할
- public 환경의 end point에 노출되어 있음
- 외부에서 요청을 받은 뒤, 내부의 private 환경에 있는 service들한테 요청을 전달해주는 Gateway (reverse proxy, routing 역할)
- 가장 앞단에서 무중지 상태로 모든 요청을 받아야 함
Spring Cloud Gateway의 특성
- 비즈니스 로직 처리 보단 단순하게 지나가는 통로 즉, I/O 처리를 중점적으로 진행
- 블로킹 방식으로 동작하는 WebFlux와 네티엔진을 사용
- WebFlux는 기존에 스프링 부트에서 사용했던 JPA와 같은 블로킹 방식의 의존성들을 모두 사용하지 못함
Routing
- Gateway의 가장 중요한 기능 -> 세부 경로로 요청이 오면, 각각의 MicroService에게 요청을 분배시켜줘야함 (Routing)
- Gateway 설정을 통해 Routing을 진행 가능
Spring Cloud Gateway 구축
의존성 추가
Spring Cloud Routing > Gateway
Gateway 설정 방식
- 설정 파일 방식
- application.properties
- application.yml
- 클래스 방식