EnableEurekaClient和EnableDiscoveryClient有什么区别?


104

在某些应用程序中,我看到人们正在使用EnableEurekaClient。还有其他一些示例应用程序正在使用EnableDiscoveryClient。

两者之间有什么区别吗?

Answers:


179

“发现服务”有多种实现方式(eureka,consulzookeeper)。 @EnableDiscoveryClient生活在spring-cloud-commons中,并在类路径中选择实现。 @EnableEurekaClient生活在spring-cloud-netflix中,仅适用于尤里卡。如果尤里卡在类路径上,则它们实际上是相同的。


问题:上面提到的两个注释是否都可以将启用了Ribbon的拦截器注入RestTemplate?行为有何不同?我注意到在以前的Spring Cloud实施中@LoadBalanced是自动应用的,但是在当前版本中,它是明确需要的。谢谢。
fg78nc

1
是。没有区别。长期以来一直需要负载平衡注释。
spencergibb

4
为什么有人想在更通用的@EnableDisocveryClient上使用@EnableEurekaClient?难道不可以将它们绑定到eureka实施,并在将来使切换SD后端变得更加困难吗?
亚当·休斯

3
是。唯一的答案是,他们是否想清除并执行尤里卡。
spencergibb

3

Spring Cloud中的发现服务概念是以不同的方式实现的,例如Eureka,领事,动物园管理员等。如果您使用的是Netflix的Eureka,则@EnableEurekaClient特别适用于此。但是,如果您正在使用包括Eureka在内的任何其他服务发现,则可以使用@EnableDiscoveryClient。


1

就实用性和简便性而言,如果注册中心是尤里卡,则@EnableEurekaClient建议使用。如果是另一个注册中心,@EnableDiscoveryClient建议。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.