SpringCloud中@EnableDiscoveryClient与@EnableEurekaClient区别

最近在各大博客上学习SpringCloud的eureka server的订阅和其他微服务client如何订阅eureka serve,其中发现作为微服务client的启动类中有时是用的@EnableEurekaClient,有时有用的是@EnableDiscoveryClient,于是我就去网上认真学习了一下两个注解之间的差距,并写下了自己的理解。

@EnableDiscoveryClient与@EnableEurekaClient区别
从stackoverflow上找到了官方给的两者的差别:
(1)订阅中心可以有eureka,zookeeper,consul等…
@EnableDiscoveryClient基于spring-cloud-commons,
@EnableEurekaClient基于spring-cloud-netflix

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

我们来看一下@EnableEurekaClient的源码把

/**
 * Convenience annotation for clients to enable Eureka discovery configuration
 * (specifically). Use this (optionally) in case you want discovery and know for sure that
 * it is Eureka you want. All it does is turn on discovery and let the autoconfiguration
 * find the eureka classes if they are available (i.e. you need Eureka on the classpath as
 * well).
 *
 * @author Dave Syer
 * @author Spencer Gibb
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface EnableEurekaClient {

}

注解@EnableEurekaClient上有@EnableDiscoveryClient注解,拥有它的功能。

总结一下:
就是如果选用的注册中心是eureka,那么就推荐@EnableEurekaClient,
如果是其他的注册中心(zookeeper,consul等),那么推荐使用@EnableDiscoveryClient。

你可能感兴趣的:(SpringCloud)