일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자료구조공부
- 스프링공부
- 코테공부
- 알고리즘공부
- 스프링
- 기술공부
- Axon framework
- DDD
- 코테준비
- 카프카
- nestjs
- Kafka
- nestjs공부
- JPA 공부
- JPA스터디
- 플러터 개발
- K8S
- 플러터 공부
- JPA공부
- querydsl
- JPA
- JPA예제
- 자바공부
- nestjs스터디
- 스프링부트공부
- 기술면접공부
- 스프링부트
- 프로그래머스
- 스프링 공부
- Flutter
- Today
- Total
DevBoi
[Spring Cloud] Gateway 공부 1 본문
Gateway 관련 얕게 구현해봤고, 공부를 대충 해봤다.
이제 개념을 다시 익히고, 다시 공부를 시작해보면서 좀 더 깊게 개발을 진행해보자
API- Gateway는 클라이언트와 백엔드 서비스 사이에 위치하는 리버스 프록시 역할을 한다.
인증, 속도제어, 서킷브레이커,모니터링 등 다양한 공통 관리 모듈을 추가하여, 모든 API들의 관문의 역할을 하는 서비스 이다.
우선 Gateway는 Netty를 사용한다.
모든 요청이 통과하는 곳이기 때문에 성능적인 측면이 매우 중요하며, 기존의 1Thread/ 1 Request방식인
MVC를 사용하면 이슈가 발생한다.
Netty 는 비동기 Was이고, 1Thread / Many Request이기 때문에 기존 방식보다 더 많은 요청을 처리할 수있다.
동작 방식은 아래와 같다.
클라이언트는 Spring Cloude Gateway에 요청을 한다.
Gateway Handler Mapping 이 Router 조건에 일치하면, 해당 요청을 보내준다.
Gateway Web Handler는 요청과 관련된 필터들을 통해 요청을 보낸다.
필터는 요청의 기능에 따라 프록시 요청이 보내지기 전/후에 실행된다.
Gateway는 크게 3가지로 구성된다.
1. Route
- 고유 ID, 목적지 URI , Predicate,Fitler로 구성된다.
게이트웨이로 요청된 URL의 조건이 참인 경우, 매핑된 해당 경로로 매칭을 시켜준다.
2. Predicate란?
주어진 요청이 주어진 조건을 충족하는지 테스트하는 구성요소이다.
각 요청 경로에 대해 충족하게 되는 경우 하나 이상의 조건자를 정의할 수 있다.
만약 Predicate에 매칭 되지 않는다면, 404를 응답한다.
3.Fitler란
Gateway기준으로 들어오는 요청 및 나가는 응답에 대해 수정을 가능하게 해주는 구성요소이다.
route를 통해, 고유 ID별로, 로드밸런싱 대상 서비스에 uri를 매핑하고,
predicates로 체크한다.
또한 해당 필터로, 안에 내용을 확인하여 넘긴다.
일단 이렇게 까지만 알고, 실제 적용 코드를 보자
'Develop > [Spring cloud]' 카테고리의 다른 글
[Spring cloud] Circuit breaker (0) | 2022.11.17 |
---|---|
[Spring cloud] Gateway 2_데모 샘플 (0) | 2022.09.04 |
[MSA] Spring Cloud Gateway (0) | 2022.08.14 |
[MSA] Circuit Breaker Pattern? (0) | 2022.08.14 |
[MSA] Service Discovery (Eureak) (0) | 2022.05.26 |