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?

YongJiang Zhang
źródło

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.

spencergibb
źródło
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.

Chinmay Biswal
źródło
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ę.

Méd Hassona El
źródło