Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- UpstageAILab#국비지원
- 국비지원
- 패스트캠퍼스AI부트캠프
- 패스트캠퍼스
- 오블완
- 패스트캠퍼스업스테이지에이아이랩
- 패스트캠퍼스업스테이지부트캠프
- UpstageAILab
- 업스테이지패스트캠퍼스
- 티스토리챌린지
Archives
- Today
- Total
김민주
[MSA] Service Discovery(Eureka) 본문
MSA 목차
- Spring Cloud
- 서비스 디스커버리(Eureka) ← 해당 포스트
- 클라이언트 사이드 로드 밸런싱 (FeignClient, Ribbon)
- 서킷 브레이커 (Resilience4j)
- API 게이트웨이 (Spring Cloud Gateway)
- 보안 구성 (OAuth2 + JWT)
- 컨피그 서버 (Spring Cloud Config)
- 분산 추적 (Spring Cloud Sleuth) 및 로깅 (Zipkin)
- 이벤트 드리븐 아키텍처와 스트림 처리 (Spring Cloud Stream)
- 마무리, 쿠버네티스
Service Discovery
서비스 디스커버리(Service Discovery)는 MSA에서 각 서비스의 위치를 동적으로 관리하고 찾아주는 기능입니다. 각 서비스는 등록 서버에 자신의 위치를 등록하고, 다른 서비스들은 등록된 서비스를 조회하여 통신할 수 있습니다.
Eureka
Eureka는 넷플릭스가 개발한 서비스 디스커버리 서버입니다. 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며, 서비스 인스턴스의 상태를 주기적으로 확인하고 여러 인스턴스를 지원하여 고가용성을 보장합니다.
- Eureka Server: 서비스 레지스트리를 구성하는 중앙 서버입니다.
server:
port: 8761
eureka:
client:
register-with-eureka: false # 다른 Eureka 서버에 이 서버를 등록하지 않음
fetch-registry: false # 다른 Eureka 서버의 레지스트리를 가져오지 않음
server:
enable-self-preservation: false # 자기 보호 모드 비활성화
해당 설정을 통해 Eureka Server를 구성하고, Client가 등록할 수 있도록 준비할 수 있습니다.
- Eureka Client: 각 서비스 애플리케이션은 Eureka Server에 자신을 등록해야 합니다.
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 # 리스 만료 기간
'spring-cloud-starter-netflix-eureka-client' 의존성을 사용하고, 애플리케이션 이름만 설정파일에 있다면 Eureka에 등록됩니다.
- Client 애플리케이션은 Eureka Server에서 필요한 서비스의 위치를 조회합니다.
- FeignClient의 경우 Spring Boot 애플리케이션에서 FeignClient를 사용하여 간편하게 서비스 호출을 수행합니다.
Eureka 고가용성 구성
Eureka Server의 고가용성을 위해 여러 인스턴스를 구성할 수 있으며, 다중 인스턴스에서 각각 서로 pear를 등록하면 서로를 인식하고 상호 백업할 수 있습니다.
'STUDY > 이론' 카테고리의 다른 글
[JAVA 모의 면접] 면접 준비 (1) | 2024.12.12 |
---|---|
[MSA] Client Side Load Balancing(ReignClient, Ribbon) (2) | 2024.12.04 |
[Spring Master] 심화 이론 - API 예외 처리 (0) | 2024.11.28 |
[Spring Master] 숙련 이론 - 데이터 검증하기 (0) | 2024.11.28 |
[Spring Master] 입문 이론 - Spring Data JPA (1) | 2024.11.28 |