목표
- Spring Cloud의 Service Discovery 기능에 대해 이해한다.
- Eureka 모듈을 사용하여 microservices를 실행한다.
- Eureka의 Health Check에 대해 이해한다.
Service Discovery
Eureka
- 각 Microservice의 IP Address와 Port Number를 저장하고 있는 Service Discovery의 대표적인 모듈이다.
- Client Side 방식으로 Client가 여러 서버 중 하나를 선택하여 요청을 보내는 방식이다.
- 이 방법은 단순하지만 Client와 Service Registry 간의 의존 관계가 형성되고 클라이언트는 주소를 알아오는 소스 코드가 필요하다.
Health Check
- Heartbeat: Eureka Client는 30초를 주기로 자신의 정보를 Eureka Server에 업데이트한다.
- Eureka Server는 기본적으로 30초를 주기로 서비스의 상태를 체크하고 3번 체크 후에도 서비스가 불가능하면 해당 서비스를 삭제한다.
실습
- IntelliJ IDEA의 Module 추가 기능 또는 Link Gradle Project 기능을 이용하여 하나의 server에 동일한 기능을 수행하는 두 개의 client를 연결시키기 위한 설정을 진행한다.
- server에는 Eureka Server 의존성을, 두 클라이언트에는 Eureka Discovery Client, Spring Web 의존성을 주입한다.
[그림 1] Link Gradle Project

[그림 2] Project Files

- 강의 내용에 따라 서버의 포트 번호를 19090, 두 클라이언트의 포트 번호를 각각 19091, 19092로 지정한 후 각각의 애플리케이션을 모두 실행한다.
- [그림 4]에서 FIRST와 SECOND라는 이름의 두 개의 애플리케이션이 각각 19091번 포트와 19092번 포트에서 실행 중 (Status: UP)인 것을 확인할 수 있다.
[그림 3] Running Applications

[그림 4] Eureka Instances

참고 블로그 1 - https://velog.io/@borab/Spring-Cloud-Eureka
참고 블로그 2 - https://techfox.tistory.com/38