1. Gambaran keseluruhan
Dalam tutorial ini, kita akan menerangkan perbezaan antara Spring Cloud Netflix Feign dan Spring Cloud OpenFeign.
2. Berpura-pura
Feign menjadikan penulisan pelanggan perkhidmatan web lebih mudah dengan memberikan sokongan anotasi yang membolehkan kami melaksanakan klien kami dengan hanya antara muka.
Pada asalnya, Feign dibuat dan dikeluarkan oleh Netflix sebagai sebahagian daripada projek Netflix OSS mereka. Hari ini, ia adalah projek sumber terbuka.
2.1. Spring Cloud Netflix Feign
Spring Cloud Netflix mengintegrasikan penawaran Netflix OSS ke dalam ekosistem Spring Cloud. Ini termasuk Feign, Eureka, Ribbon, dan sebilangan besar alat dan utiliti lain. Walau bagaimanapun, Feign diberi Spring Cloud Starter sendiri untuk membenarkan akses ke Feign sahaja.
2.2. OpenFeign
Pada akhirnya, Netflix memutuskan untuk berhenti menggunakan Feign secara dalaman dan menghentikan pengembangannya. Hasil keputusan ini, Netflix memindahkan Feign sepenuhnya ke komuniti sumber terbuka di bawah projek baru bernama OpenFeign.
Nasib baik, ia terus mendapat sokongan besar dari komuniti sumber terbuka dan telah melihat banyak ciri dan kemas kini baru.
2.3. Spring Cloud OpenFeign
Sama seperti pendahulunya, Spring Cloud OpenFeign mengintegrasikan projek pendahulunya ke dalam ekosistem Spring Cloud.
Dengan senang hati, integrasi ini menambahkan sokongan untuk anotasi Spring MVC dan memberikan HttpMessageConverters yang sama.
Mari bandingkan pelaksanaan Feign yang terdapat di Spring Cloud OpenFeign dengan yang menggunakan Spring Cloud Netflix Feign.
3. Kebergantungan
Pertama, kita mesti menambahkan pergantungan spring-cloud-starter-feign dan spring-cloud- dependency ke fail pom.xml kami :
org.springframework.cloud spring-cloud-starter-feign 1.4.7.RELEASE org.springframework.cloud spring-cloud-dependencies Hoxton.SR8 pom import
Harap maklum bahawa perpustakaan ini hanya berfungsi dengan Spring Boot 1.4.7 atau lebih awal. Oleh itu pom.xml kami mesti menggunakan versi yang serasi dari sebarang pergantungan Spring Cloud.
4. Pelaksanaan dengan Spring Cloud Netflix Feign
Sekarang, kita boleh menggunakan @EnableFeignClients untuk membolehkan komponen mengimbas sebarang antara muka yang menggunakan @FeignClient .
Untuk setiap contoh yang kami kembangkan menggunakan projek Spring Cloud Netflix Feign, kami menggunakan import berikut:
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.EnableFeignClients;
Pelaksanaan semua ciri sama persis untuk versi lama dan baru.
5. Pelaksanaan dengan Spring Cloud OpenFeign
Secara perbandingan, tutorial Spring Cloud OpenFeign kami mengandungi contoh yang sama dengan pelaksanaan dengan Spring Netflix Feign.
Satu-satunya perbezaan di sini ialah import kami dari pakej yang berbeza:
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.EnableFeignClients;
Semua yang lain adalah sama, yang tidak mengejutkan kerana hubungan antara kedua perpustakaan ini.
6. Perbandingan
Pada asasnya, kedua pelaksanaan Feign ini serupa. Kita boleh menganggap ini sebagai Netflix Feign sebagai nenek moyang OpenFeign.
Walau bagaimanapun, Spring Cloud OpenFeign merangkumi pilihan dan ciri baru yang tidak terdapat di Spring Cloud Netflix Feign.
Baru-baru ini, kami boleh mendapatkan sokongan untuk Mikrometer, Metrik Dropwizard, Pelanggan HTTP Apache 5, pelanggan HTTP Google, dan banyak lagi.
7. Kesimpulannya
Artikel ini membandingkan integrasi Spring Cloud dari OpenFeign dan Netflix Feign. Seperti biasa, anda akan menemui sumber di GitHub untuk Spring Cloud OpenFeign dan Netflix Feign.