DevBoi

[MSA] Spring Cloud Gateway 본문

Develop/[Spring cloud]

[MSA] Spring Cloud Gateway

HiSmith 2022. 8. 14. 15:46
반응형

Spring Cloud Gateway란?

Spring Reactive 생태계 위에 Spring Cloud에서 구현한 Api Gateway이다.

 

Api gateway?

reverse proxy를 향상 시켰다.

Netfilix zuul, Amazon Api Gateway, Spring cloud Gateway등이 있다.

 

*Reverse Proxy란?

Proxy는 클라이언트와 서버간의 중계기이다.

Proxy는 크게 Post Proxy 와 Reverse Proxy, 두가지가 존재한다.

Post Proxy란, 사용자가 웹서버에 직접 접근 하는 것이 아니라, Proxy서버를 통해 간접적으로 요청 할 수 있게 해주는 것

Proxy 서버가 사용자 앞에 있는 것을 PostProxy라고 한다.

Reverse Proxy는 서버앞에 이 프록시 서버가 붙는 것이다.

SSL, DDOS방어 등 서버 앞에 프록시 서버가 붙어, 서버별로 처리해야하는 비용높은 작업이나,서버의 IP를 공개하지 않는 다는 점에서 

서버의 보안 유지, 자원 절약등의 효과를 할수 있는 방법 이다.

 

 

Spirng Cloud Gateway특징

-Netty 서버를 활용, 비동기 요청 처리 제공

- 사용하기 쉬운 Pedicate와 Filters

- Circuit Breaker 통합

- Spring Cloud DiscoveryClient 통합

- Rate Liming

- Path 재작성

 

 

Spring Cloud Gateway 동작과정

1. Gateway Client 에서 요청을 보낸다.

2. Gateway Handler Mapping 에서 요청이 해당 경로와 일치, Gateway Web Handler로 전송

3. Gateway Web Handler는 요청과 관련된 필터로 요청 전송

4. 필터는 preFilter와 postFilter로 분류, preFIlter 선실행

5. Proxy FIlter 수행

6. 프록시 요청 실행

7. post FIlter 실행, Client에게 응답

 

주요 구성

 

1) Route : Gateway의 기본 블록

목적지 URI와 predicate,filter 정의

2) Predicate : 일종의 조건문, Client 의 요청이 설정한 조건과 일치하는 지 확인, 1개이상 설정 필수

Path,Cookie,After,Before,Between,Header등등

 

3) Filter : 요청,응답을 다음단계로 보내기 전에 수정할 수 있는 곳이다.

Spring Cloude Gateway는 요청, 응답을 수정하기 위해 많은 내장 GatewayFilter Factory가 포함되어있다.

Custom filter를 정의하여 사용할 수도 있다.

(AddRequestHeader,CircuitBreaker,PrefixPath,redis-rate-limiter등등)

 

위에 3개를 yml파일로 작성할수도있고, Java bean형태로 구성할 수도있다.

예)

반응형