1. 서비스 디스커버리
1. 서비스 디스커버리란?
● 서비스 디스커버리는 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리하고 찾아주는 기능
● 각 서비스는 등록 서버에 자신의 위치를 등록하고, 다른 서비스는 이를 조회하여 통신
● 주요 기능으로는 서비스 등록, 서비스 조회, 헬스 체크 등이 있다.
2-1 Eureka란?
● 넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리
● 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며, 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장
● 여러 인스턴스를 지원하여 고가용성을 유지할 수 있다.
2-1 Eureka 서버 설정
● Eureka 서버는 서비스 레지스트리를 구성하는 중앙 서버
서버 설정 파일 예시

● 해당 설정을 통해 Eureka 서버를 구성하고, 클라이언트가 등록할 수 있도록 준비
3. Eureka 클라이언트 설정
● 각 서비스는 Eureka 서버에 자신을 등록해야 함
● spring-cloud-starter-netflix-eureka-client 의존성을 사용하고, 애플리케이션 이름만 설정파일에 있으면 Eureka에 등록됨
클라이언트 설정 파일 예시
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 server 하나에 같은 기능을 하는 인스턴스 2개 연결해보기

ServerApplication.java

application.properties

first 프로젝트의 application.properties

second 프로젝트의 application.properties

'MSA(Microservices Architecture)' 카테고리의 다른 글
대규모 AI 시스템 설계 프로젝트 (1) | 2024.09.06 |
---|---|
Spring Cloud (1) | 2024.08.02 |
MSA 개요 (1) | 2024.07.31 |