(22条消息) 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。
赞 (0)