Apa perbedaan antara EnableEurekaClient dan EnableDiscoveryClient?

104

Di beberapa aplikasi, saya melihat orang menggunakan EnableEurekaClient. Dan beberapa aplikasi contoh lainnya menggunakan EnableDiscoveryClient.

Apakah ada perbedaan antara keduanya?

YongJiang Zhang
sumber

Jawaban:

179

Ada beberapa implementasi dari "Discovery Service" (eureka, consul , zookeeper ). @EnableDiscoveryClienttinggal di spring-cloud-commons dan mengambil implementasinya di classpath. @EnableEurekaClienttinggal di musim semi-cloud-netflix dan hanya bekerja untuk eureka. Jika eureka ada di jalur kelas Anda, mereka secara efektif sama.

spencergibb.dll
sumber
Pertanyaan: Akankah kedua anotasi yang disebutkan di atas memungkinkan penyadapan Ribbon-enabled disuntikkan ke RestTemplate? Adakah perbedaan dalam perilaku? Saya perhatikan bahwa dalam implementasi Spring Cloud sebelumnya diterapkan @LoadBalancedsecara otomatis, tetapi dalam versi saat ini, ini diperlukan secara eksplisit. Terima kasih.
fg78nc
1
Iya. Tidak ada perbedaan. Anotasi beban seimbang telah dibutuhkan untuk waktu yang lama.
spencergibb
4
Mengapa seseorang ingin menggunakan @EnableEurekaClient daripada @EnableDisocveryClient yang lebih umum? Bukankah hal itu akan mengikat mereka pada implementasi eureka dan mempersulit peralihan backend SD di masa mendatang?
Adam Hughes
3
Iya. Satu-satunya jawaban adalah jika mereka ingin memperjelas dan menegakkan eureka.
spencergibb
3

Konsep layanan penemuan di cloud musim semi diimplementasikan dengan berbagai cara seperti Eureka, konsul, penjaga kebun binatang, dll. Jika Anda menggunakan Eureka oleh Netflix, maka @EnableEurekaClient khusus untuk itu. Namun jika Anda menggunakan penemuan layanan lain termasuk Eureka, Anda dapat menggunakan @EnableDiscoveryClient.

Chinmay Biswal
sumber
1

Dari segi kepraktisan dan kesederhanaannya, jika center yang terdaftar adalah eureka, maka @EnableEurekaClientdirekomendasikan. Jika itu adalah pusat pendaftaran lain, @EnableDiscoveryClientdisarankan.

Méd Hassona El
sumber