129

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

这两者有什么区别吗?

4

5 回答 5

216

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

于 2015-08-13T16:11:40.383 回答
4

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

于 2019-05-04T12:13:19.083 回答
2

就其实用性和简洁性而言,如果注册中心是eureka,那么@EnableEurekaClient推荐。如果是其他注册中心,@EnableDiscoveryClient推荐。

于 2019-12-13T14:18:44.140 回答
1

@EnableEurekaCient 将使用 eureka 服务器初始化服务发现,就像明确指定使用 EUREKA

而@EnableDiscovery Client 将使用类路径中可用的 jar 注册 dicovery 服务,如 consul、Eureka、Kubernetes。

于 2022-01-05T14:52:39.450 回答
0

@EnableEurekaClient 仅适用于 Eureka 如果我们使用 @EnableDiscoveryClient 我们可以使用除 Eureka 之外的任何发现客户端,如 Consul

于 2021-09-20T06:42:01.220 回答