Perbedaan Antara Netflix Feign dan OpenFeign

1. Ikhtisar

Dalam tutorial ini, kami akan menjelaskan perbedaan antara Spring Cloud Netflix Feign dan Spring Cloud OpenFeign.

2. Berpura-pura

Pura-pura membuat menulis klien layanan web lebih mudah dengan memberikan dukungan anotasi yang memungkinkan kami untuk mengimplementasikan klien kami hanya dengan antarmuka.

Awalnya, Feign dibuat dan dirilis oleh Netflix sebagai bagian dari proyek Netflix OSS. Hari ini, ini adalah proyek sumber terbuka.

2.1. Spring Cloud Netflix Feign

Spring Cloud Netflix mengintegrasikan penawaran OSS Netflix ke dalam ekosistem Spring Cloud. Ini termasuk Feign, Eureka, Ribbon, dan sejumlah alat dan utilitas lainnya. Namun, Feign diberi Spring Cloud Starter miliknya sendiri untuk memungkinkan akses hanya ke Feign.

2.2. OpenFeign

Akhirnya, Netflix memutuskan untuk berhenti menggunakan Feign secara internal dan menghentikan pengembangannya. Sebagai hasil dari keputusan ini, Netflix sepenuhnya mentransfer Feign ke komunitas sumber terbuka di bawah proyek baru bernama OpenFeign.

Untungnya, itu terus menerima dukungan luar biasa dari komunitas open-source dan telah melihat banyak fitur dan pembaruan baru.

2.3. Spring Cloud OpenFeign

Mirip dengan pendahulunya, Spring Cloud OpenFeign mengintegrasikan proyek pendahulunya ke dalam ekosistem Spring Cloud.

Mudahnya, integrasi ini menambahkan dukungan untuk anotasi MVC Spring dan menyediakan HttpMessageConverters yang sama.

Mari bandingkan implementasi Feign yang ditemukan di Spring Cloud OpenFeign dengan yang menggunakan Spring Cloud Netflix Feign.

3. Ketergantungan

Pertama, kita harus menambahkan dependensi spring-cloud-starter-feign dan spring-cloud- dependencies ke file pom.xml :

 org.springframework.cloud spring-cloud-starter-feign 1.4.7.RELEASE   org.springframework.cloud spring-cloud-dependencies Hoxton.SR8 pom import 

Harap dicatat bahwa pustaka ini hanya berfungsi dengan Spring Boot 1.4.7 atau yang lebih lama. Oleh karena itu pom.xml kami harus menggunakan versi yang kompatibel dari semua dependensi Spring Cloud.

4. Implementasi dengan Spring Cloud Netflix Feign

Sekarang, kita dapat menggunakan @EnableFeignClients untuk mengaktifkan pemindaian komponen untuk semua antarmuka yang menggunakan @FeignClient .

Untuk setiap contoh yang kami kembangkan menggunakan proyek Spring Cloud Netflix Feign, kami menggunakan impor berikut:

import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.EnableFeignClients;

Implementasi semua fitur sama persis untuk versi lama dan versi baru.

5. Implementasi dengan Spring Cloud OpenFeign

Secara komparatif, tutorial Spring Cloud OpenFeign kami berisi contoh yang sama seperti penerapan dengan Spring Netflix Feign.

Satu-satunya perbedaan di sini adalah bahwa impor kami berasal dari paket yang berbeda:

import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.EnableFeignClients;

Semuanya sama, yang seharusnya tidak mengherankan karena hubungan antara kedua perpustakaan ini.

6. Perbandingan

Pada dasarnya, kedua implementasi Feign ini identik. Kita dapat menganggap ini berasal dari Netflix Berpura-pura menjadi nenek moyang OpenFeign.

Namun, Spring Cloud OpenFeign menyertakan opsi dan fitur baru yang tidak tersedia di Spring Cloud Netflix Feign.

Baru-baru ini, kami mendapatkan dukungan untuk Mikrometer, Metrik Dropwizard, Klien HTTP Apache 5, klien HTTP Google, dan banyak lagi.

7. Kesimpulan

Artikel ini membandingkan integrasi Spring Cloud dari OpenFeign dan Netflix Feign. Seperti biasa, Anda akan menemukan sumber di GitHub untuk Spring Cloud OpenFeign dan Netflix Feign.