728x90
반응형
- Spring Cloud Netflix
Spring Cloud Netflix는 Spring 환경 및 기타 Spring 프로그래밍 모델 관용구에 대한 자동 구성 및 바인딩을 통해 Spring Boot 앱에 대한 Netflix OSS 통합을 제공합니다. 몇 가지 간단한 주석을 사용하여 애플리케이션 내부의 공통 패턴을 빠르게 활성화 및 구성하고 전투 테스트를 거친 Netflix 구성 요소로 대규모 분산 시스템을 구축 할 수 있습니다. 제공되는 패턴에는 Service Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) 및 Client Side Load Balancing (Ribbon)이 포함됩니다.
https://spring.io/projects/spring-cloud-netflix#overview
Neflix Eureka의 목적
- Eureka는 증설되어있는 마이크로 서비스들의 정보를 레지스트리에 등록하여 관리할 수 있도록 하며, 서비스 이용자의 수의 증가로 인한 마이크로 서비스 인스턴스의 추가적인 증설과, 삭제 등을 동적으로 탐색하며, Ribbon이라는 추가적인 로드밸런싱 기능까지 사용할 수 있습니다.
- 로드밸런싱과 장애 복구(failover)가 가능한 Middle-tier 서비스 환경을 구성했을 때 클라이언트(API Gateway 또는 다른 서비스)에게 가용한 서비스 인스턴스들의 위치 정보를 동적으로 제공할 수 있습니다.
- 기존 전통적인 로드 밸런서는 서버의 고정적인 IP 주소와 Host name을 기준으로 동작하는 반면, AWS와 같은 클라우드 환경에서는 서버 위치가 동적으로 변할 수 있기 때문에 로드 밸런서에 그 위치를 등록하고 변경하는 과정이 훨씬 더 까다로웠습니다.
Eureka의 구성요소
- Eureka Client : 서비스들의 위치 정보를 알아내기 위해 Eureka에 질의하는 서비스를 가리킴 (like Service consumer)
- Eureka Service : Eureka Client에 의해 발견의 대상이 되도록 Eureka에 등록을 요청한 서비스를 가리킴 (like Service provider)
- Eureka Server : Eureka Service가 자기 자신을 등록(Service Registration)하는 서버이자 Eureka Client가 가용한 서비스 목록(Service Registry)을 요청하는 서버
- Eureka Instance : Eureka에 등록되어 목록에서 조회 가능한 Eureka Service를 의미
Eureka Server에 대해 좀 더 살펴보자면
- Server는 모든 micro service가 자신의 가용성을 등록하는 레지스트리
- 등록 정보는 service id와 url을 포함
- micro service가 시작되면 Eureka 서버에 접근해서 서비스 ID와 URL 등의 정보를 등록하고 자신을 알림(30초 heart-beat ping)
Eureka Client에 대해서도 같이 살펴보면
- Server로부터 레지스트리 정보를 읽어와 로컬에 캐시
- 30초마다 갱신
- 레지스트리 정보의 차이를 가져오는 방식으로 갱신(delta updates)
출처 : https://ratseno.tistory.com/59?category=773803
728x90
반응형
'Spring & Spring Boot' 카테고리의 다른 글
[ Spring-Boot ] JPA @EntityGraph 사용하기 (0) | 2021.06.14 |
---|---|
[ Spring-Boot ] Data - JPA 사용하기 (0) | 2021.06.14 |
[ Spring-Boot ] JPA QueryDsl 정렬 사용하기 (1) | 2021.05.23 |
[ Spring-Boot ] JPA Embedded 타입 사용하기 (0) | 2021.05.23 |
[ Spring-Boot ] JPA Entity 사용하기 (0) | 2021.05.23 |