В чем разница между EnableEurekaClient и EnableDiscoveryClient?


105

Я видел, что в некоторых приложениях люди используют EnableEurekaClient. И некоторые другие примеры приложений используют EnableDiscoveryClient.

Есть ли разница между этими двумя?

Ответы:


181

Существует несколько реализаций "Discovery Service" (eureka, consul , zookeeper ). @EnableDiscoveryClientживет в spring-cloud-commons и выбирает реализацию в пути к классам. @EnableEurekaClientживет в spring-cloud-netflix и работает только для эврики. Если эврика находится на вашем пути к классам, они фактически одинаковы.


Вопрос: Будут ли обе упомянутые выше аннотации включать перехватчик с поддержкой ленты, внедренный в RestTemplate? Есть ли разница в поведении? Я заметил, что в предыдущих реализациях Spring Cloud применялся @LoadBalancedавтоматически, но в текущей версии это требуется явно. Спасибо.
fg78nc

1
Да. Нет никакой разницы. Аннотации с балансировкой нагрузки требовались уже давно.
spencergibb

4
Зачем кому-то нужно использовать @EnableEurekaClient вместо более общего @EnableDisocveryClient? Разве это не свяжет их с реализацией эврики и не затруднит переключение бэкэндов SD в будущем?
Адам Хьюз

3
Да. Единственный ответ - если они хотят быть ясными и применять эврику.
spencergibb

3

Концепция сервиса обнаружения в облаке Spring реализована по-разному, например, Eureka, consul, zookeeper и т. Д. Если вы используете Eureka от Netflix, то @EnableEurekaClient специально для этого. Но если вы используете любое другое обнаружение служб, включая Eureka, вы можете использовать @EnableDiscoveryClient.


1

С точки зрения практичности и простоты, если зарегистрированный центр - эврика, то @EnableEurekaClientрекомендуется. Если это другой центр регистрации, @EnableDiscoveryClientрекомендуется.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.