programing

스프링을 사용하여 Eureka 디스커버리 클라이언트를 선택적으로 비활성화하려면 어떻게 해야 합니까?

randomtip 2023. 4. 1. 15:36
반응형

스프링을 사용하여 Eureka 디스커버리 클라이언트를 선택적으로 비활성화하려면 어떻게 해야 합니까?

스프링 프로파일을 기반으로 스프링 부트 유레카 클라이언트 등록을 비활성화하는 방법이 있습니까?

현재 다음 주석을 사용하고 있습니다.

@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableConfigServer

public class ConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigApplication.class, args);
    }
}

필요한 것은 (의사 코드 실례)와 같은 조건입니다.

@if (Profile!="development")
@EnableDiscoveryClient
@endif

응용 프로그램 속성 파일에 있는 방법일 수도 있습니다.application.yml 파일을 다음과 같이 설정해 보았습니다.

spring:
  profiles: development
  cloud:
    discovery:
      enabled: false

하지만 이것은 효과가 없었다.

다음과 같이 application.yml에서 eureka 클라이언트를 디세블로 할 수 있습니다.

eureka:
  client:
    enabled: false

한 명의 프로필에 대해서도

다음과 같이 합니다.작성:@Configuration주석 클래스(클래스 본문은 생략 가능):

@Profile("!development")
@Configuration
@EnableDiscoveryClient
public class EurekaClientConfiguration {
}

즉, 이 컨피규레이션파일이@EnableDiscoveryClient'개발'을 제외한 모든 프로파일에 로드됩니다.

도움이 됐으면 좋겠는데

Spring Cloud Finchley의 최신 버전.SR2 @EnableDiscoveryClient 주석을 사용하는 경우 application.properties에서 다음 속성을 모두 설정하여 서비스 등록을 해제해야 합니다.

spring.cloud.service-registry.auto-registration.enabled=false
eureka.client.enabled=false
eureka.client.serviceUrl.registerWithEureka=false

여기도 마찬가지입니다.응용 프로그램 속성 파일에 다음 구성만 넣을 수 있습니다.

  spring:
    profiles: development

  eureka:
    instance:
      hostname: localhost
    client:
      registerWithEureka: false
      fetchRegistry: false

표준 부울 스프링 클라우드 속성이 있습니다.

spring.cloud.claught.enabled

다른 프로바이더를 사용하고 있을 가능성이 있기 때문에, 이것은 「유레카」에 특화된 것보다 좋을 수 있습니다.

최신 버전의 Spring 부트에서는 이것을 bootstrap.yml 파일에 추가해 주세요.

스프링 클라우드 버전 : 엣지웨어 : SR3 이후

spring:
  application:
    name: test
  cloud:
    service-registry:
      auto-registration:
        enabled: false

그러면 유레카가 비활성화됩니다.유효하게 하려면 , 유효하게 하면 됩니다.

Eureka Discovery Client를 비활성화하려면eureka.client.enabled로.false.
Eureka 디스커버리 클라이언트도 다음과 같이 비활성화됩니다.spring.cloud.discovery.enabled로 설정되어 있다.false.

언급
https://cloud.spring.io/spring-cloud-netflix/multi/multi__service_discovery_eureka_clients.html#_registering_with_eureka

언급URL : https://stackoverflow.com/questions/35142105/how-to-selectively-disable-eureka-discovery-client-with-spring

반응형