복붙노트

[SPRING] 스프링을 사용하여 유레카 발견 클라이언트를 선택적으로 비활성화하는 방법은 무엇입니까?

SPRING

스프링을 사용하여 유레카 발견 클라이언트를 선택적으로 비활성화하는 방법은 무엇입니까?

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

현재 다음 주석을 사용합니다.

@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableConfigServer

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

내가 필요로하는 것은 조건 코드 (pseudo code)

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

또는 응용 프로그램 속성 파일에서 어떤 식 으로든. 나는 application.yml 파일을 다음과 같이 설정하려고 시도했다 :

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

그러나 이것은 효과가 없었습니다.

해결법

  1. ==============================

    1.@Configuration 주석이 달린 클래스 (class body 생략 가능)를 생성하십시오. 예 :

    @Configuration 주석이 달린 클래스 (class body 생략 가능)를 생성하십시오. 예 :

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

    이는이 구성 파일 (및 @EnableDiscoveryClient가)이 "개발"을 제외한 모든 프로필에로드된다는 것을 의미합니다.

    희망은 도움이된다.

  2. ==============================

    2.다음을 사용하여 application.yml에서 eureka 클라이언트를 비활성화 할 수 있습니다.

    다음을 사용하여 application.yml에서 eureka 클라이언트를 비활성화 할 수 있습니다.

    eureka:
      client:
        enabled: false
    

    하나의 프로필에도 해당됩니다.

  3. ==============================

    3.여기 같은 문제. 응용 프로그램 속성 파일에 다음 구성을 넣으면됩니다.

    여기 같은 문제. 응용 프로그램 속성 파일에 다음 구성을 넣으면됩니다.

      spring:
        profiles: development
    
      eureka:
        instance:
          hostname: localhost
        client:
          registerWithEureka: false
          fetchRegistry: false
    
  4. ==============================

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

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

    spring.cloud.discovery.enabled

    당신이 다른 공급자를 사용하고 있기 때문에 이것은 "유레카"보다 낫습니다.

  5. ==============================

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

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

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

    6.최신 버전의 스프링 부트로 bootstrap.yml 파일에 추가하십시오.

    최신 버전의 스프링 부트로 bootstrap.yml 파일에 추가하십시오.

    봄 구름 버전 : Edgeware : SR3 이상

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

    유레카가 사용 중지됩니다. 이 기능을 사용하려면 true로 설정해야합니다.

  7. from https://stackoverflow.com/questions/35142105/how-to-selectively-disable-eureka-discovery-client-with-spring by cc-by-sa and MIT license