Rozdiely medzi Netflix Feign a OpenFeign

1. Prehľad

V tomto tutoriále popíšeme rozdiely medzi Spring Cloud Netflix Feign a Spring Cloud OpenFeign.

2. Predstierať

Feign uľahčuje písanie klientov webových služieb poskytovaním podpory anotácií čo nám umožňuje implementovať našich klientov iba pomocou rozhraní.

Feign pôvodne vytvoril a vydal Netflix ako súčasť svojho projektu Netflix OSS. Dnes je to projekt typu open-source.

2.1. Jarný cloud Netflix predstiera

Spring Cloud Netflix integruje ponuky Netflix OSS do ekosystému Spring Cloud. Patria sem nástroje Feign, Eureka, Ribbon a množstvo ďalších nástrojov a pomôcok. Feign však dostal vlastný Spring Cloud Starter, aby umožnil prístup iba k Feignu.

2.2. OpenFeign

Nakoniec sa Netflix rozhodol prestať používať Feign interne a zastavil jeho vývoj. Výsledkom tohto rozhodnutia bol Netflix, ktorý v rámci nového projektu s názvom OpenFeign úplne preniesol Feign na komunitu open-source.

Našťastie naďalej dostáva obrovskú podporu od komunity otvorených zdrojov a dočkala sa mnohých nových funkcií a aktualizácií.

2.3. Spring Cloud OpenFeign

Spring Cloud OpenFeign, podobne ako jeho predchodca, integruje predchádzajúci projekt do ekosystému Spring Cloud.

Táto integrácia pohodlne pridáva podporu pre anotácie Spring MVC a poskytuje rovnaké HttpMessageConverters.

Porovnajme implementáciu Feign nájdenú v Spring Cloud OpenFeign s implementáciou Spring Cloud Netflix Feign.

3. Závislosti

Najprv musíme pridať spring-cloud-starter-feign a závislosti jar-oblak závislosti na naše pom.xml spis:

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

Upozorňujeme, že táto knižnica funguje iba s Spring Boot 1.4.7 alebo starším. Preto náš pom.xml musíte používať kompatibilné verzie akýchkoľvek závislostí Spring Cloud.

4. Implementácia pomocou Spring Cloud Netflix Feign

Teraz môžeme použiť @EnableFeignClients na povolenie skenovania komponentov pre všetky rozhrania, ktoré používajú @FeignClient.

Pre každý príklad, ktorý sme vyvinuli pomocou projektu Spring Cloud Netflix Feign, používame nasledujúce importy:

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

Implementácia všetkých funkcií je pre starú aj novú verziu úplne rovnaká.

5. Implementácia pomocou Spring Cloud OpenFeign

Náš tutoriál Spring Cloud OpenFeign porovnateľne obsahuje rovnaký príklad ako implementácia pomocou Spring Netflix Feign.

Jediný rozdiel je v tom, že náš dovoz pochádza z iného balíka:

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

Všetko ostatné je rovnaké, čo by nemalo byť prekvapením kvôli vzťahu medzi týmito dvoma knižnicami.

6. Porovnanie

V zásade sú tieto dve implementácie Feignu identické. Môžeme to pripísať Netflixu Feign, ktorý je predkom OpenFeignu.

Spring Cloud OpenFeign však obsahuje nové možnosti a funkcie, ktoré nie sú dostupné v Spring Cloud Netflix Feign.

V poslednej dobe môžeme získať podporu pre Micrometer, Dropwizard Metrics, Apache HTTP Client 5, Google HTTP client a mnoho ďalších.

7. Záver

Tento článok porovnával integrácie Spring Cloudu OpenFeign a Netflix Feign. Ako obvykle, na serveri GitHub nájdete zdroje pre Spring Cloud OpenFeign aj Netflix Feign.