eureka server configuration

2024. 12. 11. 16:47Spring Microservice

spring:
  application:
    name: eureka-server
  boot:
    admin:
      context-path: /admin
server:
  port: 8070

eureka:
  instance:
    hostname: eurekaserver
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
    waitTimeInMsWhenSyncEmpty: 5

spring.boot.admin.context-path는 Spring Boot Admin과 관련된 설정으로, Spring Boot Admin 서버의 관리 인터페이스에 접근할 URL 경로를 정의합니다. 이를 상세히 설명하겠습니다.


spring.boot.admin.context-path

  • 설명:
    • Spring Boot Admin 서버는 Spring Boot 애플리케이션들을 모니터링하고 관리하기 위한 웹 기반 대시보드 역할을 합니다.
    • 이 속성은 Spring Boot Admin 서버의 관리 인터페이스 URL의 접두 경로를 설정합니다.

속성 값

  • : /admin
    • Spring Boot Admin의 대시보드 인터페이스는 기본적으로 서버의 루트 URL (/)에서 제공됩니다.
    • 하지만, 이 설정을 통해 관리 대시보드가 /admin 경로로 제공되도록 변경됩니다.
    • 예를 들어, 서버가 http://localhost:8070에서 실행 중이라면, Spring Boot Admin의 관리 페이지는 http://localhost:8070/admin에서 접근 가능합니다.

용도

  1. URL 구조 분리:
    • /admin 경로를 사용하면, Spring Boot Admin과 다른 REST API 또는 웹 애플리케이션 경로를 구분하여 관리 페이지와 애플리케이션 비즈니스 로직을 분리할 수 있습니다.
  2. 보안:
    • /admin 경로를 설정하면, 특정 경로만 방화벽이나 인증 메커니즘으로 보호할 수 있습니다.
    • 예를 들어, Spring Security를 사용하여 /admin 경로에 대해 관리자만 접근 가능하도록 설정할 수 있습니다.

예제

기본 구조

spring:
  application:
    name: eureka-server
  boot:
    admin:
      context-path: /admin
server:
  port: 8070
  • Spring Boot Admin 대시보드는 http://localhost:8070/admin에서 접근 가능.

보안 설정 (예시)

spring:
  application:
    name: eureka-server
  boot:
    admin:
      context-path: /admin
server:
  port: 8070

# Spring Security 설정
security:
  basic:
    enabled: true
  user:
    name: admin
    password: secret
  • 위 설정은 /admin 경로에 Basic Authentication을 추가하여 관리자만 접근하도록 설정합니다.

요약

  • spring.boot.admin.context-path: Spring Boot Admin의 관리 인터페이스가 제공될 URL 경로를 지정합니다.
  • : /admin으로 설정되어, 관리 대시보드는 http://localhost:8070/admin에서 접근 가능합니다.
  • 장점: URL 분리와 보안 강화를 통해 Spring Boot Admin의 사용성을 개선합니다.

eureka 하위 구성 정보는 Spring Cloud Netflix Eureka 서버와 관련된 설정을 정의합니다. 각 속성의 의미를 자세히 설명하겠습니다.


1. eureka.instance.hostname

  • 설명: Eureka 서버 인스턴스의 호스트 이름을 지정합니다.
  • : eurekaserver
    • 클라이언트가 Eureka 서버에 연결할 때 사용할 서버의 호스트 이름입니다.
    • 예를 들어, 클라이언트가 이 Eureka 서버를 등록하거나 레지스트리를 조회할 때 http://eurekaserver:8070/eureka/를 사용합니다.

2. eureka.client.registerWithEureka

  • 설명: Eureka 서버 자신이 다른 Eureka 서버에 등록할지 여부를 결정합니다.
  • : false
    • 이 설정은 Eureka 서버가 클라이언트로 동작하지 않도록 합니다.
    • Eureka 서버는 기본적으로 다른 Eureka 서버에 등록되지 않으므로 보통 false로 설정합니다.

3. eureka.client.fetchRegistry

  • 설명: Eureka 서버가 다른 Eureka 서버에서 레지스트리 정보를 가져올지 여부를 설정합니다.
  • : false
    • Eureka 서버가 자체적으로 독립적으로 동작하며, 다른 서버에서 레지스트리 정보를 가져오지 않도록 설정합니다.
    • Standalone Eureka 서버로 작동할 때 주로 사용합니다.

4. eureka.client.serviceUrl.defaultZone

  • 설명: Eureka 클라이언트가 Eureka 서버에 연결할 기본 URL을 정의합니다.
  • : http://${eureka.instance.hostname}:${server.port}/eureka/
    • 여기서 eureka.instance.hostnameserver.port를 사용해 URL을 동적으로 생성합니다.
    • 결과 값은 http://eurekaserver:8070/eureka/로 평가됩니다.
    • 이 URL은 Eureka 클라이언트가 Eureka 서버와 통신할 때 사용하는 기본 엔드포인트입니다.
    • 주요 역할:
      • 클라이언트가 Eureka 서버에 자신을 등록하거나 레지스트리를 조회할 때 이 URL을 참조합니다.

5. eureka.server.waitTimeInMsWhenSyncEmpty

  • 설명: Eureka 서버가 레지스트리를 동기화할 수 없는 경우 대기할 시간(밀리초)을 설정합니다.
  • : 5
    • Eureka 서버가 클라이언트 레지스트리를 동기화하는 동안, 만약 레지스트리가 비어 있으면 설정된 시간만큼 대기합니다.
    • 이 속성은 레지스트리 동기화와 관련된 문제를 방지하거나 해결하는 데 사용됩니다.

요약

  • eureka.instance.hostname: Eureka 서버의 호스트 이름 (eurekaserver).
  • eureka.client.registerWithEureka: Eureka 서버가 다른 Eureka 서버에 등록하지 않도록 설정 (false).
  • eureka.client.fetchRegistry: Eureka 서버가 다른 서버의 레지스트리를 가져오지 않음 (false).
  • eureka.client.serviceUrl.defaultZone: 클라이언트가 Eureka 서버와 통신할 기본 URL.
  • eureka.server.waitTimeInMsWhenSyncEmpty: 레지스트리 동기화가 비어 있을 때 대기할 시간 (5ms).

이 설정은 독립적인 Eureka 서버를 구성하며, 클라이언트와 통신하기 위해 기본 URL과 호스트 이름을 명시적으로 지정합니다. Standalone Eureka 서버로 동작하도록 설계된 구성이므로 고가용성을 필요로 하지 않는 환경에서 적합합니다.

'Spring Microservice' 카테고리의 다른 글

@FeignClient  (0) 2024.12.11
@LoadBalanced  (0) 2024.12.11
@EnableFeignClients  (0) 2024.12.11
Spring Cloud Bus  (0) 2024.12.11
서비스 디스커버리 클라이언트 Push/Pull  (0) 2024.12.11