복붙노트

[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.최신 버전의 스프링 부트로 bootstrap.yml 파일에 추가하십시오.

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

    봄 구름 버전 : Edgeware : SR3 이상

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

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

  6. ==============================

    6.@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
    
  7. from https://stackoverflow.com/questions/35142105/eureka-discovery-client-selective-disable by cc-by-sa and MIT license