EnableEurekaClient和EnableDiscoveryClient有什么区别?

Yon*_*ang 88 spring-cloud netflix-eureka

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

这两者有什么区别吗?

spe*_*ibb 154

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

  • 为什么有人想在更通用的@EnableDisocveryClient上使用@EnableEurekaClient?难道不会将它们绑定到eureka实现并且将来更难转换SD后端吗? (4认同)
  • 是。唯一的答案是,他们是否想清除并执行尤里卡。 (3认同)

Chi*_*wal 7

Spring Cloud 中的发现服务概念以不同的方式实现,如 Eureka、consul、zookeeper 等。如果您使用 Netflix 的 Eureka,那么 @EnableEurekaClient 专门用于此目的。但是,如果您正在使用任何其他服务发现(包括 Eureka),则可以使用 @EnableDiscoveryClient。