Spring Boot Project, Eureka 서버 만들기

Jihu Kim·2025년 1월 7일
post-thumbnail

Eureka 서버의 주요 역할

  • 서비스 등록 : 마이크로서비스가 Eureka 서버에 자신의 정보를 등록.
  • 서비스 디스커버리 : 다른 서비스들이 Eureka 서버를 통해 동적으로 위치(IP/포트)를 조회.
  • 헬스 체크 (Health Check) : Eureka는 서비스의 가용성을 확인(헬스 체크)하여, 정상 작동 중인 서비스만 디스커버리 결과로 제공.
  • 로드 밸런싱 지원 : 여러 인스턴스가 등록된 경우, Eureka는 해당 정보를 반환해 로드 밸런싱 지원.
    • Eureka 자체는 로드 밸런싱을 자동으로 처리하지 않음.
    • 로드 밸런싱에 필요한 데이터를 제공하며, Gateway가 로드 밸런싱을 수행

로드 밸런싱

로드 밸런싱 : 트래픽을 여러 서버로 고르게 분산시켜 성능을 최적화하는 기술

  • 로드 밸런싱 적용하기
    • Spring Cloud Gateway에서 적절한 로드 밸런싱 알고리즘 설정
    • 특정 마이크로 서비스(서버)를 다수의 인스턴스로 확장
      • 단일 인스턴스로 실행 중이면 로드 밸런싱이 불가능

Eureka 서버 구현

1. 의존성 추가

  • Gradle(build.gradle)
dependencies {
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

2. Spring Boot Application 설정

  • Application 클래스
package com.example.eurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}

3. application.properties 설정

  • application.yml
server:
  port: 8761 # Eureka 서버의 기본 포트

eureka:
  client:
    register-with-eureka: false # 자기 자신을 Eureka에 등록하지 않음
    fetch-registry: false       # 레지스트리를 가져오지 않음
  server:
    enable-self-preservation: false # 자기 보호 모드 비활성화 (개발 중에만 사용)

4. Eureka 서버 실행

  • 애플리케이션을 실행하면 Eureka 서버가 8761번 포트에서 작동.
  • 기본 URL: http://localhost:8761

5. Eureka 대시보드 확인

  • 브라우저에서 http://localhost:8761에 접속하면 Eureka 대시보드가 표시 됨.
  • 서비스들이 등록되면 대시보드에 표시 됨
profile
Jihukimme

0개의 댓글