Jaka jest różnica między EnableEurekaClient i EnableDiscoveryClient?


104

W niektórych aplikacjach widziałem, jak ludzie używają EnableEurekaClient. Niektóre inne przykładowe aplikacje używają EnableDiscoveryClient.

Czy jest jakaś różnica między tymi dwoma?

Odpowiedzi:


179

Istnieje wiele implementacji usługi „Discovery Service” (eureka, consul , zookeeper ). @EnableDiscoveryClientmieszka w spring-cloud-commons i wybiera implementację na ścieżce klas. @EnableEurekaClientmieszka w wiosennej chmurze Netflix i pracuje tylko dla Eureki. Jeśli eureka znajduje się na twojej ścieżce klas, są właściwie takie same.


Pytanie: Czy obie wyżej wymienione adnotacje włączą przechwytywacz z obsługą Wstążki wstrzyknięty do RestTemplate? Jakaś różnica w zachowaniu? Zauważyłem, że we wcześniejszych wdrożeniach Spring Cloud @LoadBalancedbył stosowany automatycznie, ale w obecnej wersji jest to wyraźnie wymagane. Dziękuję Ci.
fg78nc

1
Tak. Nie ma różnicy. Adnotacja o zrównoważonym obciążeniu była wymagana przez długi czas.
spencergibb

4
Dlaczego ktoś miałby chcieć używać @EnableEurekaClient zamiast bardziej ogólnego @EnableDisocveryClient? Czy to nie wiązałoby ich z implementacją eureka i nie utrudniałoby przełączania backendów SD w przyszłości?
Adam Hughes

3
Tak. Jedyną odpowiedzią jest to, czy chcą być jasne i egzekwować eurekę.
spencergibb

3

Koncepcja usługi Discovery w wiosennej chmurze jest wdrażana na różne sposoby, np. Eureka, konsul, zookeeper itp. Jeśli używasz Eureka od Netflix, to @EnableEurekaClient jest specjalnie do tego celu. Ale jeśli używasz innego wykrywania usług, w tym Eureka, możesz użyć @EnableDiscoveryClient.


1

Pod względem praktyczności i prostoty, jeśli zarejestrowanym centrum jest eureka, to @EnableEurekaClientjest to zalecane. Jeśli jest to inne centrum rejestracji, @EnableDiscoveryClientzaleca się.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.