본문 바로가기
DEV/MSA

MSA 시작하기 - Zuul

by 땅콩둘기 2021. 3. 11.
반응형

Zuul

JVM-based router and Server-side load balancer

마이크로서비스 아키텍처에서 여러 클라이언트 요청을 적절한 서비스로 프록시하거나 라우팅하기 위한 서비스

Zuul이 모든 요청을 관련 서비스에게 routing 한다. API Gateway 또는 Edge 서비스 역할을 한다. Frontend로 부터 모든 요청을 받아 내부 마이크로서비스들에게 요청을 전달하므로 단일 종단점을 갖게한다.

따라서 CORS, 인증, 보안과 같은 공통 설정을 Zuul 서비스에서 처리할 수 있다.

또한 클라이언트 요청을 적절한 서비스로 라우팅하거나 필터를 적용하여 헤더에 특정 정보를 추가할 수 있다.

 

사용 목적은 동적 라우팅, 모니터링, 회복 탄력성, 보안 기능을 지원 (Filters를 통한 구현), 필요에 따라 여러 개의 Amazon Auto Scaling Groups로 요청을 라우팅 (Ribbon을 통 구현이다.

 

특징

  • 기능적 측면에서 변화

  - 백엔스 서비스를 대상으로 인증, 권한, CORS 관리 등과 같은 공통 관심사 로직을 클라이언트에서   분리

  - 백엔드 서비스들의 다양한 통신 프로토콜(HTTP, AMQP ) 사용에 대한 지원

  - 다양한 클라이언트(web/mobile browser, native mobile app ) 특성에 맞는 다양한 데이터 포맷   지원

  • 인프라 측면

  - 클라우드 환경에서 Auto Scaling과 같은 기능을 이용해 서비스 인스턴스를 트래픽에 따라 동적으  로 생성/운영하거나 컨테이너로 배포하면서 인스턴스의 위치(host,port)가 동적으로 변한다.

  - 시간이 지남에 따라 서비스가 합쳐지거나 쪼개질 수 있다

  • 동작방식

front-end -----routing rules:shard traffic with path------ zuul -----service discovery:instance lookup---- back-end REST API

반응형

'DEV > MSA' 카테고리의 다른 글

MSA 시작하기 - Ribbon  (0) 2021.03.10
Eureka Service 만들기  (0) 2021.03.09
Spring Boot 에서 Eureka 시작하기  (0) 2021.03.08

댓글