web-dev-qa-db-fra.com

client de découverte eureka - désactivation sélective

Existe-t-il un moyen de désactiver l’enregistrement de client Spring-Boot Eureka en fonction du profil Spring?

Actuellement, j'utilise les annotations suivantes:

@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableConfigServer

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

Ce dont j'ai besoin est soit un conditionnel tel que (excusez le pseudo-code)

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

Ou d'une certaine manière dans le fichier de propriétés de l'application. J'ai essayé de définir le fichier application.yml comme suit:

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

Mais cela n'a pas fonctionné.

14
zinc wombat

Faites-le comme ceci: créez une classe annotée @Configuration (le corps de la classe peut être omis) ex .:

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

Cela signifie que ce fichier de configuration (et @EnableDiscoveryClient au sein de celui-ci) sera chargé dans tous les profils sauf "développement".

J'espère que cela pourra aider,

22
patrykos91

Vous pouvez désactiver eureka client dans application.yml en utilisant ceci:

eureka:
  client:
    enabled: false

C'est aussi pour un profil

48
dmitryvim

Même problème ici. Vous pouvez simplement mettre dans votre fichier de propriétés d'application la configuration suivante:

  spring:
    profiles: development

  eureka:
    instance:
      hostname: localhost
    client:
      registerWithEureka: false
      fetchRegistry: false
5
Timi Ruprecht

Il existe une propriété standard de nuages ​​de printemps booléens 

spring.cloud.discovery.enabled

Cela pourrait être mieux que "eureka" spécifique puisque vous utilisez peut-être un autre fournisseur.

5
Rafael

Avec la dernière version de Spring Cloud Finchley.SR2 si vous utilisez l'annotation @EnableDiscoveryClient, vous devez définir toutes les propriétés suivantes dans application.properties pour désactiver l'enregistrement du service:

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

Avec la dernière version de Spring Boot, veuillez l'ajouter dans le fichier bootstrap.yml

Version cloud du printemps: Edgeware: SR3 et supérieur

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

Cela désactivera eureka. Pour l'activer, il suffit de rendre enabled le vrai

0
denzal