有没有办法根据弹簧配置文件禁用spring-boot 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
但这不起作用。
答案 0 :(得分:52)
您可以使用以下命令禁用application.yml中的eureka客户端:
eureka:
client:
enabled: false
这也适用于一个个人资料
答案 1 :(得分:25)
这样做:创建一些@Configuration
带注释的类(类体可以省略)ex。:
@Profile("!development")
@Configuration
@EnableDiscoveryClient
public class EurekaClientConfiguration {
}
这意味着除了“developpement”之外,每个配置文件中都会加载此配置文件(以及@EnableDiscoveryClient
)。
希望有所帮助,
答案 2 :(得分:5)
这里的问题相同。您只需在应用程序属性文件中输入以下配置:
spring:
profiles: development
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
答案 3 :(得分:5)
有一个标准的布尔spring-cloud属性
spring.cloud.discovery.enabled
这可能比" eureka"具体,因为您可能正在使用其他提供商。
答案 4 :(得分:3)
对于最新版本的Spring Cloud Finchley.SR2,如果使用的是@EnableDiscoveryClient注释,则必须在application.properties中设置以下所有属性以禁用服务注册:
spring.cloud.service-registry.auto-registration.enabled=false
eureka.client.enabled=false
eureka.client.serviceUrl.registerWithEureka=false
答案 5 :(得分:0)
使用最新版本的Spring boot,请将其添加到bootstrap.yml文件中
Spring cloud版本:Edgeware:SR3及以上
jq
这将禁用尤里卡。要启用它,我们只需要将其设置为true
答案 6 :(得分:0)
要禁用 Eureka Discovery Client,您可以设置
lsof
到 eureka.client.enabled
。
尤里卡发现客户端也将
false
设置为 spring.cloud.discovery.enabled
时禁用。