Spring Cloud 中允许服务发现可以使用 @EnableDiscoveryClient
或 @EnableEurekaClient
注解,它们有什么区别呢?
区别
我们知道 Eureka 是类似 Zookeeper、Consul 的服务注册发现中心,顾名思义 @EnableEurekaClient
是针对使用 Eureka 作为服务注册中心时,而 @EnableDiscoveryClient
是通用的服务发现注解,它会根据 classpath 引入的情况自适应。
@EnableDiscoveryClient
是基于 spring-cloud-commons 包依赖,并且在 classpath 中实现。
@EnableEurekaClient
是基于 spring-cloud-netflix 包依赖,为 Eureka 其作用,同样如果在 classpath 中引入 Eureka,也会生效。
由于从 Eureka 2.0 开始闭源,建议使用 @EnableDiscoveryClient 注解。