Как выборочно отключить клиент Eureka discovery с помощью Spring?
Есть ли способ отключить регистрацию клиента spring -boot eureka на основе профиля spring?
В настоящее время я использую следующие аннотации:
@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
Но это не сработало.
Ответы
Ответ 1
Сделайте это следующим образом: создайте аннотированный класс @Configuration
(класс тела может быть опущен), например:
@Profile("!development")
@Configuration
@EnableDiscoveryClient
public class EurekaClientConfiguration {
}
Это означает, что этот файл конфигурации (и @EnableDiscoveryClient
внутри) будет загружен в каждом профиле, кроме "разработки".
Надеюсь, это поможет,
Ответ 2
Вы можете отключить клиента eureka в application.yml, используя это:
eureka:
client:
enabled: false
Он также для одного профиля
Ответ 3
Такая же проблема. Вы можете просто добавить в свой файл свойств приложения следующую конфигурацию:
spring:
profiles: development
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
Ответ 4
Существует стандартное логическое свойство spring -cloud
spring.cloud.discovery.enabled
Это может быть лучше, чем "эврика", поскольку вы можете использовать другого провайдера.
Ответ 5
С последней версией Spring Cloud Finchley.SR2, если вы используете аннотацию @EnableDiscoveryClient, вы должны установить все следующие свойства в application.properties, чтобы отключить регистрацию службы:
spring.cloud.service-registry.auto-registration.enabled=false
eureka.client.enabled=false
eureka.client.serviceUrl.registerWithEureka=false
Ответ 6
С последней версией загрузки Spring, пожалуйста, добавьте это в файл bootstrap.yml
Версия весеннего облака: Edgeware: SR3 и выше
spring:
application:
name: test
cloud:
service-registry:
auto-registration:
enabled: false
Это отключит эврика. Чтобы включить его, нам просто нужно сделать включенным как true