Qual é a diferença entre EnableEurekaClient e EnableDiscoveryClient?


104

Em alguns aplicativos, vi que as pessoas estão usando EnableEurekaClient. E alguns outros aplicativos de exemplo estão usando EnableDiscoveryClient.

Existe alguma diferença entre esses dois?

Respostas:


179

Existem várias implementações de "Discovery Service" (eureka, cônsul , zookeeper ). @EnableDiscoveryClientmora em spring-cloud-commons e escolhe a implementação no classpath. @EnableEurekaClientmora em spring-cloud-netflix e só funciona para eureka. Se eureka estiver em seu caminho de classe, eles serão efetivamente os mesmos.


Pergunta: Ambas as anotações mencionadas acima habilitarão o interceptor habilitado para fita injetado no RestTemplate? Alguma diferença de comportamento? Percebi que nas implementações anteriores do Spring Cloud @LoadBalancedfoi aplicado automaticamente, mas na versão atual, é exigido explicitamente. Obrigado.
fg78nc

1
Sim. Não há diferença. A anotação com balanceamento de carga é necessária há muito tempo.
spencergibb

4
Por que alguém iria querer usar @EnableEurekaClient em vez do @EnableDisocveryClient mais geral? Isso não os vincularia à implementação eureka e dificultaria a troca de back-ends de SD no futuro?
Adam Hughes

3
Sim. A única resposta é se eles querem ser claros e fazer cumprir o eureka.
spencergibb

3

O conceito de serviço de descoberta no Spring Cloud é implementado de maneiras diferentes, como Eureka, consul, zookeeper etc. Se você estiver usando o Eureka da Netflix, @EnableEurekaClient é especificamente para isso. Mas se você estiver usando qualquer outra descoberta de serviço, incluindo Eureka, você pode usar @EnableDiscoveryClient.


1

Em termos de praticidade e simplicidade, se o centro registrado é eureka, então @EnableEurekaClienté recomendado. Se for outro centro de registro, @EnableDiscoveryClienté recomendado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.