Spring Cloud GateWay

sunlog·2022년 2월 14일
0
post-thumbnail

Spring Cloud Gateway 에서 사용하는 3가지 명칭

우선 Spring Cloud Gateway 에서 사용하는 3가지 용어에 대해서 먼저 알아볼 필요가 있다.

  1. Route
  2. Predicate
  3. Filter

Route (라우트)

목적지의 URI와 Predicates라는 조건들의 목록 그리고 필터들을 이용하여 어떤 곳으로 Routing 할 것인지를 명시하는 역할을 한다.

우리는 Routes 에 대한 속성과 정보를 입력하여 Spring Cloud가 어떤 방식으로 동작하라고 지시할 수 있게 된다.

Predicate

쉽게 조건이라고 생각하면 된다.

아래에서 우리는 Predicates 를 작성할 것인데, 다음과 같이 작성한다.

predicated: -Path=/user/**

그럼 user 라는 모든 경로를 지정한 것이다.

  • Handler Mapping 시에 필요한 Uri 정보나, Path 정보를 확인하는 주체가 된다.

Filter

프록시 방식으로 동작하며, 한 필터에 pre / post 동작을 정의 할 수 있다.

모든 pre 필터가 처리된 후 요청이 처리되고 나오면서 모든 post 필터가 처리된다.

들어오는 요청과 응답, Request, Response을 특정 필터를 타게 함으로 우리가 원하는 방식으로 요청을 보내거나 헤더를 조작할 수 있고, 해당 필터를 이용해서 로그 파일을 작성하게 할 수 도 있다.

  • Handler Mapping이 된 후 들어온 요청에 대한 필터 작업을 수행할 수 있다.
  • 2개의 필터로 크게 나뉘며 사전(Pre Filter)와 사후(Post Filter)로 나눌 수 있다.
    • Pre Filter
      • 특정 작업이 일어나기 전에 지정
    • Post Filter
      • 특정 작업이 끝난 후에 지정

Spring Cloud Gateway 절차

  1. Client 는 Spring Cloud Gateway 에 요청을 보낸다.
  2. Gateway Handler Mapping 에서 해당 요청에 대한 Route와 Predicates가 일치한다고 판단하면 해당 요청은 Gateway Web handler로 보내진다.
  3. handler 에서 Filter Chain 을 이용해서 사전 필터 혹은 사후 필터로 나누어 동작한다.
  4. 필터링이 된 후 실제 마이크로서비스에게 전달된다.

0개의 댓글