What's the difference between EnableEurekaClient and EnableDiscoveryClient?
Solution 1
There are multiple implementations of "Discovery Service" (eureka, consul, zookeeper). @EnableDiscoveryClient
lives in spring-cloud-commons and picks the implementation on the classpath. @EnableEurekaClient
lives in spring-cloud-netflix and only works for eureka. If eureka is on your classpath, they are effectively the same.
Solution 2
Discovery service concept in spring cloud is implemented in different ways like Eureka, consul, zookeeper etc. If you are using Eureka by Netflix then @EnableEurekaClient is specifically for that. But if you are using any other service discovery including Eureka you can use @EnableDiscoveryClient.
Solution 3
In terms of its practicality and simplicity, if the registered center is eureka, then @EnableEurekaClient
is recommended. If it is another registration center, @EnableDiscoveryClient
is recommended.
Solution 4
@EnableEurekaCient will initilize the service discovery using eureka server, its like explicitly specifying to use EUREKA
While @EnableDiscovery Client will register dicovery service using the jar available in classpath like consul, Eureka, Kubernetes.
YongJiang Zhang
Updated on January 06, 2022Comments
-
YongJiang Zhang over 2 years
In some applications, I saw people are using EnableEurekaClient. And some other example applications are using EnableDiscoveryClient.
Is there any difference between these two?
-
fg78nc about 6 yearsQuestion : Will both of above mentioned annotations enable Ribbon-enabled interceptor injected into RestTemplate? Any difference in behavior? I noticed that in previous Spring Cloud implementations
@LoadBalanced
was automatically applied, but in current version, it is required explicitly. Thank you. -
spencergibb about 6 yearsYes. There is no difference. The load balanced annotation has been required for a long time.
-
Adam Hughes over 5 yearsWhy would someone want to use @EnableEurekaClient over the more general @EnableDisocveryClient? Wouldn't that bind them to the eureka implementation and make it harder to switch SD backends in the future?
-
spencergibb over 5 yearsYes. The only answer is if they want to be clear and enforce eureka.
-
abhinav kumar over 2 yearsperfect explaination