-
Spring Cloud Gateway - 작성중Spring 2024. 1. 4. 15:55
SCG ( Spring Cloud Gateway ) 살펴보는 목적
01. Route & filter
02. API 인증/인가
03. Circuit breaker - resilience4j
04. rate Limiter - resilience4j
05. Monitoring - gateway 를 통과하는 모든 요청에 대해 표준화된 global filter 적용 가능 ( user info, time set, traceId )
→ 3~5 를 .net service 앞 단에 적용할 경우 유용
장점
Spring 생태계 & 개발자에게 친숙
- 기존 spring web application 에 dependency 만 추가해서 필요한 기능을 사용할 수도 있음
Opensource, Free
webflux & netty 로 비동기, 성능 우수
→ virtual thread 까지 도입되면, 쉬우면서 괜찮은 성능 지원할 것으로 예상, gateway MVC project is under contruction
Api gateway 의 장점
단점
상용툴에서 제공되는 UI 및 Admin 기능이 없음
인증/인가 구현을 위한 추가노력 필요
Api gateway 제품군의 위험
Single Point of failure (단일 장애점) - API Gateway 장애 시 피해가 큼
Tip, 제가 주로 사용하는 학습 경로
1. 한글 References 를 훑어보며, 개념 파악
2. Official Site 에서 발표 잘하는 분의 youtube 보면서 개념 정리 - Spring Advocates, Cora Iberkleid
3. 제작자, 개발자의 youtube 보면서, 기능 파악 & demo - Spencer GibbKorean References
googling 해보면, 개발자들의 많은 관심을 알 수 있습니다. 구글검색결과
사람인 기술 블로그 - SPRING CLOUD GATEWAY를 이용한 API GATEWAY 구축기
https://saramin.github.io/2022-01-20-spring-cloud-gateway-api-gateway/
+ config server & git
+ admin & db ; 사용자향 admin 도 구현
S Core 데이터관리 클라우드 플랫폼 - Spring Cloud Gateway 기반의 API 게이트웨이 구축
토리맘의 한글라이즈 프로젝트 - Spring Cloud Gateway
https://godekdls.github.io/Spring%20Cloud%20Gateway/contents/justAroundTheCorner - 스프링 클라우드 게이트웨이를 설명해보다
https://velog.io/@gowjr207/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4%EB%A5%BC-%EC%84%A4%EB%AA%85%ED%95%B4%EB%B3%B4%EB%8B%A4English References
official site : https://spring.io/projects/spring-cloud-gateway/
github : https://github.com/spring-cloud/spring-cloud-gateway
SpringOne Tour, Cora Iberkleid - Protect Your Microservices with Spring Cloud Gateway
https://www.youtube.com/watch?v=HY4kTCNKwxk
API gateway Role & Responsibilities
https://youtu.be/HY4kTCNKwxk?t=73
Reactive Gateway
https://youtu.be/HY4kTCNKwxk?t=211
Gateway Flow
https://youtu.be/HY4kTCNKwxk?t=232
predicates
pre filters
Global Filter
SpringOne Tour, Spencer Gibb - Weaving Spring Cloud Gateway on Loom
- spring cloud gateway main contributor
https://www.youtube.com/watch?v=UyxUkAagLFs
[ 요청을 라우팅하기 위한 구분 조건 ]
The After Route Predicate Factory: 날짜 파라미터를 받아 지정된 날짜 시간 이후에 발생하는 요청을 라우팅함
The Before Route Predicate Factory: 날짜 파라미터를 받아 지정된 날짜 시간 이전에 발생하는 요청을 라우팅함
The Between Route Predicate Factory: 날짜 파라미터를 받아 지정된 날짜 시간 사이에 발생하는 요청을 라우팅함The Cookie Route Predicate Factory: 특정 쿠키값을 기준으로 라우팅함
The Header Route Predicate Factory: 특정 헤더값을 기준으로 라우팅함
The Host Route Predicate Factory: 호스트 헤더값을 기준으로 라우팅함The Method Route Predicate Factory: HTTP METHOD값을 기준으로 라우팅함
The Path Route Predicate Factory: 요청 PATH값을 기준으로 라우팅함
The Query Route Predicate Factory: 요청 Query Parameter값을 기준으로 라우팅함
The RemoteAddr Route Predicate Factory: RemoteAddr값을 기준으로 라우팅함The Weight Route Predicate Factory: weight, group 값을 기준으로 라우팅함
https://cloud.spring.io/spring-cloud-gateway/reference/html/#gateway-request-predicates-factories