MSA(Microservices Architecture)

서비스 디스커버리

운동하는 주니어개발자 2024. 8. 2. 15:47

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