eureka server configuration
2024. 12. 11. 16:47ㆍSpring 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
에서 접근 가능합니다.
- Spring Boot Admin의 대시보드 인터페이스는 기본적으로 서버의 루트 URL (
용도
- URL 구조 분리:
/admin
경로를 사용하면, Spring Boot Admin과 다른 REST API 또는 웹 애플리케이션 경로를 구분하여 관리 페이지와 애플리케이션 비즈니스 로직을 분리할 수 있습니다.
- 보안:
/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.hostname
과server.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 |