Spring & Spring Boot

Spring Cloud Netflix - Eureka

사과씨앗 2021. 6. 11. 13:35
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

 

Spring Cloud Netflix

Spring Cloud Netflix features: Service Discovery: Eureka instances can be registered and clients can discover the instances using Spring-managed beans Service Discovery: an embedded Eureka server can be created with declarative Java configuration Circuit B

spring.io

 

 

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

 

[Spring]Spring Cloud Netflix - Eureka[1]

Spring Cloud Netfilx 프로젝트는 Spring Boot를 통하여 Neflix OSS를 사용할 수 있는 프로젝트입니다. 이 프로젝트를 통하여 MSA 환경에 적합한 환경을 구축할 수 있습니다. https://cloud.spring.io/spring-clou..

ratseno.tistory.com

 

 

728x90
반응형