본문 바로가기

MSA

Spring Cloud (1) ::: Gateway

MSA 아키텍처를 이야기 할때 가장 많이 언급되는 것이 gateway다.

수많은 API를 관리해주는 일종의 출입문으로 로깅, 보안, 모니터링 등 공통 기능을 담당하게 된다.

 

 

Spring Cloud에서 제공하는 대표적인 gateway 컴포넌트는 Zuul 이다.

 

<artifactId>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>

</artifactId>

요즘에는 gradle 기반 Application이 많지만 난 아직도 maven이 익숙하다 보니 ...ㅋ

 

Zuul에는 기본적으로 Ribbon과 Hystrix를 포함하고 있어

클라이언트 기반 로드 밸런싱(Ribbon) 기능과 Circuit Breaker(Hystrix) 기능을 수행한다. 

따라서 yongs-gateway뒤에 위치한 API들에 대한 관리가 가능하다.

 

EurekaServer는 Template의 모든 instance들을 전체적으로 관리하는 역할을 수행하며,

ZipkinServer를 통하여 Transaction 추적을 할 수 있게 설계되었다.

 

dockerize된 EurekaServer를 띄워놓으면, 이후 새롭게 추가되는 instance를 자동으로 등록하고 삭제하여

auto scaling을 지원하게 된다.

 

또한, traceId, spanId를 내부적으로 발생하고 로깅하여 ZipkinServer로 Transaction 추적을 용이하게 한다.

 

MSA에서 가장 중요하고 필요한 기능들을 Spring Cloud의 도움으로 쉽게 개발이 가능하다.

'MSA' 카테고리의 다른 글

Event Driven MSA  (0) 2020.03.21
JWT를 이용한 Authentication 시나리오  (0) 2020.02.03
Spring Cloud (3) ::: Order  (0) 2019.08.07
Spring Cloud (2) ::: Main  (0) 2019.08.07
Spring Cloud (0) ::: 아키텍처  (0) 2019.08.07