在某些应用程序中,我看到人们正在使用
@EnableEurekaClient
。其他一些示例应用程序正在使用 @EnableDiscoveryClient
。
这两者有什么区别吗?
“发现服务”有多种实现(eureka、consul、zookeeper)。
@EnableDiscoveryClient
位于 spring-cloud-commons 并选择类路径上的实现。 @EnableEurekaClient
位于 spring-cloud-netflix 中,仅适用于尤里卡。如果尤里卡在你的类路径上,它们实际上是相同的。
Spring Cloud 中的发现服务概念以不同的方式实现,如 Eureka、consul、zookeeper 等。如果您使用 Netflix 的 Eureka,那么 @EnableEurekaClient 专门用于此目的。但如果您正在使用任何其他服务发现,包括 Eureka,您可以使用 @EnableDiscoveryClient。
从实用性和简单性来说,如果注册中心是eureka,那么推荐
@EnableEurekaClient
。如果是其他报名中心,推荐@EnableDiscoveryClient
。
@EnableEurekaCient 将使用 eureka 服务器启动服务发现,就像显式指定使用 EUREKA
@EnableDiscovery Client 将使用类路径中可用的 jar 来注册发现服务,如 consul、Eureka、Kubernetes。
@EnableEurekaClient 仅适用于 Eureka,如果我们使用 @EnableDiscoveryClient,我们可以使用除 Eureka 之外的任何发现客户端,如 Consul