1,@EnableDiscoveryClient注解是基于spring-cloud-commons依赖,并且在classpath中实现; 
2,@EnableEurekaClient注解是基于spring-cloud-netflix依赖,只能为eureka作用;

其实用更简单的话来说,就是如果选用的注册中心是eureka,那么就推荐@EnableEurekaClient,如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient。

下文是从stackoverflow上面找到的对这两者的解释

There are multiple implementations of "Discovery Service" (eureka, consul, zookeeper). 
@EnableDiscoveryClient lives in spring-cloud-commons and picks the implementation on the classpath.  
@EnableEurekaClient lives in spring-cloud-netflix and only works for eureka. If eureka is on your classpath, they are effectively the same.

@EnableDiscoveryClient

@EnableEurekaClient

注解@EnableEurekaClient上有@EnableDiscoveryClient注解,
可以说基本就是EnableEurekaClient有@EnableDiscoveryClient的功能,
另外上面的注释中提到,其实@EnableEurekaClient注解就是一种方便使用eureka的注解而已,
可以说使用其他的注册中心后,都可以使用@EnableDiscoveryClient注解,
但是使用@EnableEurekaClient的情景,就是在服务采用eureka作为注册中心的时候,使用场景较为单一。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐