Spring-Cloud-Netflix
Spring Cloud Netflix는 자동 환경 설정과 Spring Environment 및 다른 Spring 프로그래밍 모델 관념의 바인딩을 바탕으로 Spring Boot 어플리케이션을 위한 Netflix OSS(Open Source Software) 통합을 제공합니다. 몇 가지 간단한 어노테이션을 사용하여 어플리케이션 내부의 공통 패턴을 신속하게 사용하고 설정할 수 있습니다. 그리고 battle-tested를 거친 Netflix component를 통해 대규모 분산 시스템을 구축할 수 있습니다.
제공되는 패턴은 다음과 같다.
1. Service Discovery (Eureka) : 자바 환경 구성으로 embeded Eureka 서버를 설정할 수 있으며, eureka 인스턴스를 등록한 서비스를 클라이언트는 스프링이 관리하는 bean을
사용하여 발견할 수 있다.
2. Circuit Breaker (Hystrix) : Hystrix 대쉬보드 및 어노테이션을 통한 hystrix 클라이언트 구현
3. Declarative REST Client (Feign) : Feign은 JAX-RX 혹은 MVC Annotation으로(선언적) 인터페이스를 동적으로 구현한다.
4. Client Side Load Balancer(Ribbon) : zuul에 내장된 로드 밸런서
5. External Configuration : Spring 환경에서 Archaius로 연결 (Spring Boot를 사용하여 Netflix 구성 요소를 설정 가능)
6. Router and Filter - Proxy(Zuul) : Zuul 필터의 자동 등록 및 Reverse Proxy 생성 설정 접근에 대한 간단한 규칙
Spring-Cloud-Netflix EchoSystem
spring-cloud-netflix 생태계는 간단하게 다음과 같다.
1. 모든 요청은 Zuul(API-Gateway)에서 처리되며, URI에 맞는 서비스를 라우팅한다. 만약 동일한 서비스가 여러 개의 인스턴스에 있는 경우에는 로드밸런싱을 통해 트래픽을 나눈다. 이는 Zuul에 내장된 Ribbon이 하는 기능이며, Default는 라운드로빈 방식에 의해 분산이 된다.
2. 모든 서비스는 유레카 서버에 등록된다.
3. 인스턴스간의 모든 호출(서비스와 서비스, gateway와 서비스 ... 등) 사이에는 Hystrix Circuit breaker 패턴이 적용된다.
https://www.optisolbusiness.com/insight/micro-services-architecture-spring-boot-and-netflix-infrastructure
https://spring.io/projects/spring-cloud-netflix
'Framework > Spring ' 카테고리의 다른 글
Spring AOP (1) (0) | 2019.08.02 |
---|---|
Spring Cloud Netflix (3) - zuul (0) | 2019.06.06 |
Spring Cloud Netflix (2) - hystrix (0) | 2019.02.25 |
Spring Websocket (Handler, STOMP, Reactive Websocket) (6) | 2019.02.10 |