Was ist der Unterschied zwischen EnableEurekaClient und EnableDiscoveryClient?

104

In einigen Anwendungen habe ich gesehen, dass Benutzer EnableEurekaClient verwenden. Einige andere Beispielanwendungen verwenden EnableDiscoveryClient.

Gibt es einen Unterschied zwischen diesen beiden?

YongJiang Zhang
quelle

Antworten:

179

Es gibt mehrere Implementierungen von "Discovery Service" (Eureka, Konsul , Tierpfleger ). @EnableDiscoveryClientlebt in Spring-Cloud-Commons und wählt die Implementierung auf dem Klassenpfad aus. @EnableEurekaClientlebt in spring-cloud-netflix und arbeitet nur für eureka. Wenn sich Eureka auf Ihrem Klassenpfad befindet, sind sie praktisch gleich.

spencergibb
quelle
Frage: Aktivieren beide oben genannten Anmerkungen den in RestTemplate injizierten Ribbon-fähigen Interceptor? Irgendein Unterschied im Verhalten? Ich habe festgestellt, dass in früheren Spring Cloud-Implementierungen @LoadBalancedautomatisch angewendet wurde, in der aktuellen Version jedoch ausdrücklich erforderlich ist. Danke dir.
fg78nc
1
Ja. Es gibt keinen Unterschied. Die Annotation zum Lastausgleich ist seit langem erforderlich.
spencergibb
4
Warum sollte jemand @EnableEurekaClient gegenüber dem allgemeineren @EnableDisocveryClient verwenden wollen? Würde das sie nicht an die eureka-Implementierung binden und es in Zukunft schwieriger machen, SD-Backends zu wechseln?
Adam Hughes
3
Ja. Die einzige Antwort ist, wenn sie klar sein und Eureka durchsetzen wollen.
spencergibb
3

Das Discovery-Service-Konzept in der Spring Cloud wird auf verschiedene Arten implementiert, z. B. Eureka, Konsul, Tierpfleger usw. Wenn Sie Eureka von Netflix verwenden, ist @EnableEurekaClient speziell dafür geeignet. Wenn Sie jedoch eine andere Serviceerkennung einschließlich Eureka verwenden, können Sie @EnableDiscoveryClient verwenden.

Chinmay Biswal
quelle
1

In Bezug auf seine Praktikabilität und Einfachheit @EnableEurekaClientwird empfohlen , wenn das registrierte Zentrum eureka ist. Wenn es sich um ein anderes Registrierungszentrum handelt, @EnableDiscoveryClientwird empfohlen.

Méd Hassona El
quelle