Spring Cloud Eureka란?

강진구·2024년 6월 27일
0

스프링 클라우드

목록 보기
2/2

  • 원천기술은 Netflix에서 개발했다
  • Eureka 서버와 Eureka 클라이언트로 구성된다
  • Cloud환경의 여러 서비스들의 부하분산 및 장애조치 수행을 목적으로 한다
  • 각 연결된 서비스의 IP, PORT, instanceID를 가지고 REST기반으로 작동한다
  • Service Discovery 역할을 수행한다

Eureka 서버 (Eureka Server)

  • Eureka 서버는 서비스 레지스트리 역할을 하며, 모든 서비스 인스턴스의 정보를 저장하고 관리한다

  • 클러스터로 구성될 수 있으며, 고가용성과 확장성을 지원한다

Eureka 클라이언트 (Eureka Client)

  • Eureka 클라이언트는 각 마이크로서비스 애플리케이션에 포함되어, Eureka 서버에 자신의 정보를 등록하고 다른 서비스의 정보를 조회한다

  • 클라이언트는 주기적으로 서버에 자신의 상태를 갱신(heartbeat)하여, 서버가 서비스의 가용성을 유지할 수 있도록 한다

서비스 디스커버리(Service Discovery)

클라우드 환경의 MSA에서는 서비스가 필요에 따라 생성/소멸을 반복할 것이고, 운영하면서 서비스는 계속해서 늘어날 텐데 이를 관리하기 위한 무언가가 필요했다

그래서 서비스를 등록하고 검색해주는 서비스 디스커버리(Service Discovery)가 등장

  • 마이크로서비스 아키텍처에서 각 서비스가 동적으로 자신의 위치(IP 주소와 포트)를 등록하고, 다른 서비스들이 이를 발견할 수 있도록 하는 메커니즘

  • Eureka 서버는 서비스 디스커버리의 중심 역할을 하며, 각 서비스는 Eureka 서버에 자신의 존재를 알리고, 다른 서비스들의 위치를 조회한다

  • 유레카 서버(Eureka Server)에서는 각 서비스들을 서비스의 ID값으로 매핑하여 관리하고 있는데 서비스들은 각각 자신의 정보를 디스커버리 서버에 등록(Service Registry)하고, 디스커버리 서버(Service Discovery)는 다른 서비스들의 정보를 조회(검색)한다

  • 서비스 디스커버리 서버를 통해 각 서비스들의 IP와 PORT를 모르더라도 서비스의 정보(ID)만 알면 서로 연계가 가능해진다


주요 특징

  • 동적 서비스 레지스트리: 각 서비스 인스턴스가 실행될 때 Eureka 서버에 자신을 등록하고, 종료될 때 등록을 취소한다

  • 서비스 헬스 체크: Eureka 클라이언트는 주기적으로 자신의 상태를 Eureka 서버에 보고한다 서버는 이 정보를 바탕으로 서비스 가용성을 판단한다

  • 로드 밸런싱: 클라이언트는 Eureka 서버에서 여러 인스턴스의 정보를 받아 로드 밸런싱을 수행할 수 있다

  • 고가용성: Eureka 서버는 클러스터로 구성되어 장애에 대비할 수 있다


reference

profile
기록하고,발전하자

0개의 댓글