[Spring Cloud] Eureka 개념 및 예제
Spring Cloud MSA - 6 | Spring Cloud Gateway, Load balancing 구현하기
Eureka
- 클라우드 환경의 다수의 서비스(예: API 서버)들의 로드 밸런싱 및 장애 조치 목적을 가진 미들웨어 서버
- Eureka는 이러한 미들웨어 기능을 하기 위해 각 연결된 서비스의 IP / PORT /InstanceId를 가지고 있고 REST기반으로 작동
- Eureka는 Client-Sever 방식으로 Eureka Server에 등록된 서비스는 Eureka Client로 불린다.
로드 밸런싱(Load Balancing)

- 특정 서비스를 제공하는 서버가 여러 대가 있을 때 트래픽을 한 서버에 몰리지 않게 분산해주는 기술
- 한 서버의 성능을 높이는 스케일 업(Scale-up) 작업은 한계가 있으므로 분산 처리를 위해 여러 대의 서버들을 놓게 되는 스케일 아웃(Scale-out)작업을 하게 된다.
- 이 때 여러 서버들로 대규모의 네트워크 트래픽을 분산 처리하는 기술이 로드 밸런싱
- 로드 밸런싱 기술을 제공하는 서비스 또는 장치(로드밸런서, Load Balancer)는 클라이언트와 네트워크 트래픽이 집중되는 서버들(Server Pool)또는 네트워크 허브 사이에 위치
기법
- Round Robin 방식
- 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
- 여러 대의 서버가 동일한 스펙을 갖고 있으며 서버와의 연결이 오래 지속되지 않는 경우에 적합
- Weighted Round Robin 방식