개념
Spring Cloud Eureka는 Client-Side Service Discovery라고도 부른다. 이는 호스트, 포트 하드코딩 없이 서비스가 서로를 찾고 통신할 수 있으며 서비스들의 로드 밸런싱, 장애 조치에 도움을 주는 미들웨어이다.
기본적으로 서버-클라이언트 구조로 서버는 서비스들의 가용성을 등록하는 레지스트리이다.
이때 레지스트리란 서비스 연결 정보를 말한다.
서버에 등록될 때는 서비스 ID, URL이 등록되며 서비스는 서비스 ID를 통해 접근 가능하다.
기본적인 흐름은 아래와 같다.
- Eureka Client 서비스가 시작되면 Eureka Server에 정보가 등록된다
- Eureka Client는 Server로부터 다른 Client의 레지스트리를 받아 저장한다.
- 30초마다 Server로부터 변경 사항을 갱신받는다.
- 30초마다 ping을 통해 자신이 동작하고 있다는 신호를 보낸다. 이때 신호가 없다면 레지스트리에서 제외된다.
Eureka Server 프로젝트 생성(Intellij 환경)
1. 스프링 부트 프로젝트 설정 후 dependency 단계에서 Eureka Server를 체크한 후 생성
2. 생성한 프로젝트의 ServiceApplication에서 @EnableEurekaServer를 추가해준다.
3. application.properties 나 application.yml에 아래와 같이 입력해준다
- server.port : eureka 서버의 포트를 설정
- eureka.client.register-with-eureka : 레지스트리에 자신을 등록할지 여부
- eureka.client.fetch-registry : 레지스트리에 있는 정보를 가져올지 여부
eureka.client.register-with-eureka와 eureka.client.fetch-registry를 false 하는 이유는 Server이기 때문에 client로서 eureka에 등록되는 것을 방지하기 위함이다.
4. 실행
정상적으로 실행되는 것을 볼 수 있다.
<참고>
https://velog.io/@ililil9482/Spring-Cloud-Netflix-Eureka-i8j2lbny
https://dejavuhyo.github.io/posts/eureka/
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] application.yml과 application.properties 차이 (0) | 2022.10.11 |
---|---|
[Spring] Deprecated 된 WebSecurityConfigurerAdapter (1) | 2022.07.13 |
템플릿 캐싱에 대해 (0) | 2022.06.14 |