¿Cuál es la diferencia entre EnableEurekaClient y EnableDiscoveryClient?


104

En algunas aplicaciones, vi que la gente está usando EnableEurekaClient. Y algunas otras aplicaciones de ejemplo utilizan EnableDiscoveryClient.

¿Hay alguna diferencia entre estos dos?

Respuestas:


179

Hay múltiples implementaciones de "Discovery Service" (eureka, cónsul , zookeeper ). @EnableDiscoveryClientvive en spring-cloud-commons y elige la implementación en el classpath. @EnableEurekaClientvive en spring-cloud-netflix y solo funciona para eureka. Si eureka está en tu classpath, son efectivamente iguales.


Pregunta: ¿Las dos anotaciones mencionadas anteriormente habilitarán el interceptor habilitado para Ribbon inyectado en RestTemplate? ¿Alguna diferencia de comportamiento? Noté que en implementaciones anteriores de Spring Cloud @LoadBalancedse aplicó automáticamente, pero en la versión actual, se requiere explícitamente. Gracias.
fg78nc

1
Si. No hay diferencia. La anotación de carga equilibrada ha sido necesaria durante mucho tiempo.
spencergibb

4
¿Por qué alguien querría usar @EnableEurekaClient sobre el @EnableDisocveryClient más general? ¿No los vincularía eso a la implementación de eureka y dificultaría el cambio de backends SD en el futuro?
Adam Hughes

3
Si. La única respuesta es si quieren ser claros y hacer cumplir eureka.
spencergibb

3

El concepto de servicio de descubrimiento en Spring Cloud se implementa de diferentes maneras, como Eureka, cónsul, guardián del zoológico, etc. Si está utilizando Eureka de Netflix, @EnableEurekaClient es específicamente para eso. Pero si está utilizando cualquier otro descubrimiento de servicios, incluido Eureka, puede utilizar @EnableDiscoveryClient.


1

En cuanto a su practicidad y sencillez, si el centro registrado es eureka, entonces @EnableEurekaClientse recomienda. Si es otro centro de registro, @EnableDiscoveryClientse recomienda.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.