Spring Cloud Gateway

Hayoung Kim·2022년 6월 3일
0

MSA

목록 보기
4/5

Spring Cloud Gateway(SCG)

WHY?

안전한 API유통과 Client 요청별로 유연하게 대처하기 위함.
인증/인가, 로드밸런싱 & 라우팅, 로깅, Circuit Breaker의 역할을 수행한다.

ZUUL과의 차이점

  1. Blocking vs. non-Blocking
  • Blocking 방식은 요청을 보내고 응답이 올때까지 다음으로 진행하지않고 기다린다.
  • non-Blocking 방식은 요청을 보내고 바로 다음으로 진행하여 다른일을 하다가 응답이 오면 그에 맞는 처리를 한다.

Zuul 은 서블릿 2.5 위에서 Blocking API들을 사용하여 개발됨 👉 웹소켓과 같은 길게 지속되는 연결을 지원하지 않는다.
SCG는 Spring Framework 5, Project Reactor 그리고 Spring Boot2 위에서 non-Blocking API들을 사용하여 개발됨 👉 웹소켓이 지원되고 Spring 과 잘 연동되기 때문에 개발자 경험을 매우 크게 향상시킨다.

  1. Filter only vs. Predicates Filters
    Zuul이 Filter들만으로 동작하는 반면, SCG는 Predicates(수행을 위한 사전 요구조건)와 Filter를 조합하여 동작한다.
  • Zuul
  • SCG

Gateway Handler Mapping이 Prediates에 지정한 경로와 일치하는지 판단하고 Gateway Web Handler는 지정된 필터들을 통해 요청을 전송한다.
필터들은 요청과 응답에 대한 처리를 수행한다.

  1. Tomcat vs. Netty
  • Zuul은 Web/WAS로 Tomcat을 사용
  • SCG는 Netty 사용

✔ Netty는 비동기 네트워킹을 지원하는 어플리케이션 프레임워크임.

0개의 댓글