| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Spring Cloud
- Apache Kafka
- Rabbit MQ
- Hexagonal Architecture
- kafka
- Domain Driven
- android studio
- Domain-Driven
- 헥사고날
- 클린 아키텍처
- spring boot
- Context map
- Ubiquitous Language
- 공통 언어
- BOJ
- Spring
- Thymeleaf
- hexagonal
- 이벤트 기반
- DTO Projection
- clean architecture
- 안드로이드 스튜디오
- 컨텍스트 맵
- JPA
- rabbitmq
- event
- 헥사고날 아키텍처
- 백준
- subdomain
- EC2
Archives
- Today
- Total
취미겸생업
[Spring boot] Spring Cloud 서비스 디스커버리 (Eureka) 본문
서비스 디스커버리 (Eureka)
마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리하고 찾아주는 기능으로, 각 서비스는 등록 서버에 자신의 위치를 등록하고, 다른 서비스는 이를 조회하여 통신한다
Eureka란
- 넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리
- 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며, 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장
- 여러 인스턴스를 지원하여 고가용성을 유지할 수 있음
Eureka 서버 설정
build.gradle
dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server' ... }application.yml
server: port: 8761 eureka: client: register-with-eureka: false # 다른 Eureka 서버에 이 서버를 등록하지 않음 fetch-registry: false # 다른 Eureka 서버의 레지스트리를 가져오지 않음 server: enable-self-preservation: false # 자기 보호 모드 비활성화EurekaConfig.java
@Configuration @EnableEurekaServer public class EurekaConfig {}
Eureka 클라이언트 설정
의존성 추가와 application.yml 설정만으로 Eureka 서버에 서비스가 등록된다
build.gradle
dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' ... }application.yml
spring: application: name: my-service eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ # Eureka 서버 URL register-with-eureka: true # Eureka 서버에 등록 fetch-registry: true # Eureka 서버로부터 레지스트리 정보 가져오기 instance: hostname: localhost # 클라이언트 호스트 이름 prefer-ip-address: true # IP 주소 사용 선호 lease-renewal-interval-in-seconds: 30 # 리스 갱신 간격 lease-expiration-duration-in-seconds: 90 # 리스 만료 기간
헬스 체크 및 장애 처리
- Eureka 서버는 주기적으로 서비스 인스턴스의 상태를 확인
- 기본 엔드포인트 : “/actuator/health”
- 서비스 장애 시 Eureka 서버는 해당 인스턴스를 레지스트리에서 제외하여 다른 서비스의 접근을 차단
고가용성(HA) 구성
Eureka 서버는 다중 인스턴스를 사용해 HA 클러스터를 구성할 수 있다. Eureka 서버는 장애 발생 시 모든 서비스에 문제가 발생하기 때문에 서비스 환경에서 다중화는 필수이다.
application.yml
eureka: client: service-url: defaultZone: http://eureka-peer1:8761/eureka/,http://eureka-peer2:8761/eureka/
'IT > Spring Boot' 카테고리의 다른 글
| [Spring boot] Resilience4j 서킷 브레이커 (0) | 2026.07.01 |
|---|---|
| [Spring boot] Spring Cloud 로드밸런싱 (0) | 2026.06.30 |
| [Spring boot] MSA, Spring Cloud 개요 (0) | 2026.06.24 |
| [Spring boot] @Scheduled (0) | 2026.06.23 |
| [Spring boot] JPA Projection (0) | 2026.04.17 |
