Eureka

  • Eureka란?
    • 주로 AWS 클라우드에서 middle-tier 서버의 로드 밸런싱 및 장애 조치 (failover)를 위해 서비스를 찾는데 사용되는 REST (Representational State Transfer) 기반 서비스
    • Eureka Server와 Java 기반 클라이언트 구성 요소인 Eureka Client와 함께 제공
    • 클라이언트에는 기본 라우드 로빈 알고리즘 및 로드 밸런싱을 수행하는 로드 밸런서 내장
    • Eureka에서 기본 로드 밸런스 외에도 트래픽, 리소스 사용량, 에러 상황 요소에 따라 로드밸런스를 할 수 있도록 제공


  • Eureka서버와 Eureka 클라이언트의 통신(self‑registration pattern)
    • 서비스 인스턴스는 서비스 레지스트리에 등록 및 등록 취소를 담당
    • 필요한 경우 서비스 인스턴스는 등록이 만료되지 않도록 하트 비트 요청
    • self‑registration pattern 좋은 예
      • Netflix OSS Eureka 클라이언트 동작방식
      • Eureka client를 내장한 Application Service와 Client가 Eureka Server에 등록을 요청하고 30초마다 갱신을 위한 하트 비트 전송
    • Eureka 클라이언트는 서비스 인스턴스 등록 및 등록 취소의 모든 측면을 처리
    • Netflix에서 Eureka를 사용하는 방법
      • Region 별로 인스턴스에 대해 알고 있는 Eureka 서버가 하나씩 존재
      • zone에서 문제가 발생할 경우를 대비하여 zone마다 하나 이상 Eureka 서버를 구축
      • 서비스는 유레카 (Eureka)에 등록한 후 30 초마다 임대 갱신하기 위해 하트 비트 전송
      • 클라이언트가 임대를 몇 번 갱신 할 수 없으면 약 90 초 내에 서버 레지스트리에서 제거
      • 등록 정보 및 갱신은 클러스터의 모든 유레카 노드에 복제
      • 모든 영역의 클라이언트는 레지스트리 정보 (30 초마다 발생)를 찾아 서비스 (모든 영역에 있을 수 있음)를 찾고 원격 호출 가능


참조 : https://github.com/Netflix/eureka

https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance