Unterschiede zwischen Netflix Feign und OpenFeign

1. Übersicht

In diesem Tutorial werden die Unterschiede zwischen Spring Cloud Netflix Feign und Spring Cloud OpenFeign beschrieben.

2. Täuschen

Feign erleichtert das Schreiben von Webdienst-Clients durch die Bereitstellung von Anmerkungsunterstützung , mit der wir unsere Kunden nur mit Schnittstellen implementieren können.

Ursprünglich wurde Feign von Netflix im Rahmen des Netflix OSS-Projekts erstellt und veröffentlicht. Heute ist es ein Open-Source-Projekt.

2.1. Spring Cloud Netflix Feign

Spring Cloud Netflix integriert die Netflix OSS-Angebote in das Spring Cloud-Ökosystem. Dies umfasst Feign, Eureka, Ribbon und eine Vielzahl anderer Tools und Dienstprogramme. Feign erhielt jedoch einen eigenen Spring Cloud Starter, um nur auf Feign zugreifen zu können.

2.2. OpenFeign

Letztendlich entschied sich Netflix, die interne Verwendung von Feign einzustellen und stellte seine Entwicklung ein. Als Ergebnis dieser Entscheidung hat Netflix Feign im Rahmen eines neuen Projekts namens OpenFeign vollständig an die Open-Source-Community übertragen.

Glücklicherweise erhält es weiterhin immense Unterstützung von der Open-Source-Community und hat viele neue Funktionen und Updates erhalten.

2.3. Frühlingswolke OpenFeign

Ähnlich wie sein Vorgänger integriert Spring Cloud OpenFeign das Vorgängerprojekt in das Spring Cloud-Ökosystem.

Praktischerweise bietet diese Integration Unterstützung für Spring MVC-Annotationen und bietet dieselben HttpMessageConverter.

Vergleichen wir die Feign-Implementierung in Spring Cloud OpenFeign mit einer mit Spring Cloud Netflix Feign.

3. Abhängigkeiten

Zuerst müssen wir die Abhängigkeiten Spring-Cloud-Starter-Feign und Spring-Cloud- Abhängigkeiten zu unserer Datei pom.xml hinzufügen :

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

Bitte beachten Sie, dass diese Bibliothek nur mit Spring Boot 1.4.7 oder früher funktioniert. Daher muss unsere pom.xml kompatible Versionen aller Spring Cloud-Abhängigkeiten verwenden.

4. Implementierung mit Spring Cloud Netflix Feign

Jetzt können wir @EnableFeignClients verwenden , um das Scannen von Komponenten für alle Schnittstellen zu aktivieren, die @FeignClient verwenden .

Für jedes Beispiel, das wir mit dem Spring Cloud Netflix Feign-Projekt entwickelt haben, verwenden wir die folgenden Importe:

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

Die Implementierung aller Funktionen ist für die alte und die neue Version genau gleich.

5. Implementierung mit Spring Cloud OpenFeign

Unser Spring Cloud OpenFeign-Tutorial enthält vergleichsweise dasselbe Beispiel wie die Implementierung mit Spring Netflix Feign.

Der einzige Unterschied besteht darin, dass unsere Importe aus einem anderen Paket stammen:

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

Alles andere ist das gleiche, was aufgrund der Beziehung zwischen diesen beiden Bibliotheken keine Überraschung sein sollte.

6. Vergleich

Grundsätzlich sind diese beiden Implementierungen von Feign identisch. Wir können dies Netflix Feign als Vorfahren von OpenFeign zuschreiben.

Spring Cloud OpenFeign enthält jedoch neue Optionen und Funktionen, die in Spring Cloud Netflix Feign nicht verfügbar sind.

Vor kurzem können wir Unterstützung für Mikrometer, Dropwizard-Metriken, Apache HTTP Client 5, Google HTTP Client und viele mehr erhalten.

7. Fazit

In diesem Artikel wurden die Spring Cloud-Integrationen von OpenFeign und Netflix Feign verglichen. Wie üblich finden Sie die Quellen auf GitHub für Spring Cloud OpenFeign und Netflix Feign.