Perbezaan Antara Netflix Feign dan OpenFeign

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.