Forskjeller mellom Netflix Feign og OpenFeign

1. Oversikt

I denne opplæringen skal vi beskrive forskjellene mellom Spring Cloud Netflix Feign og Spring Cloud OpenFeign.

2. Feign

Feign gjør det lettere å skrive webtjeneste klienter ved å tilby annoteringsstøtte som lar oss implementere våre kunder med bare grensesnitt.

Opprinnelig ble Feign opprettet og gitt ut av Netflix som en del av deres Netflix OSS-prosjekt. I dag er det et open source-prosjekt.

2.1. Spring Cloud Netflix Feign

Spring Cloud Netflix integrerer Netflix OSS-tilbudene i Spring Cloud-økosystemet. Dette inkluderer Feign, Eureka, Ribbon og en rekke andre verktøy og verktøy. Feign fikk imidlertid sin egen Spring Cloud Starter for å gi tilgang til bare Feign.

2.2. OpenFeign

Til slutt bestemte Netflix seg for å slutte å bruke Feign internt og opphørte utviklingen. Som et resultat av denne avgjørelsen overførte Netflix Feign til open source-fellesskapet under et nytt prosjekt kalt OpenFeign.

Heldigvis fortsetter den å motta enorm støtte fra open source-fellesskapet og har sett mange nye funksjoner og oppdateringer.

2.3. Spring Cloud OpenFeign

I likhet med forgjengeren integrerer Spring Cloud OpenFeign forgjengersprosjektet i Spring Cloud-økosystemet.

Denne integrasjonen gir praktisk støtte for Spring MVC-merknader og gir de samme HttpMessageConverters.

La oss sammenligne Feign-implementeringen som ble funnet i Spring Cloud OpenFeign med en som bruker Spring Cloud Netflix Feign.

3. Avhengigheter

Først må vi legge til vår-sky-start-feign og vår-sky-avhengigheter avhengigheter til vår pom.xml fil:

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

Vær oppmerksom på at dette biblioteket bare fungerer med Spring Boot 1.4.7 eller tidligere. Derfor vår pom.xml må bruke kompatible versjoner av alle Spring Cloud-avhengigheter.

4. Implementering med Spring Cloud Netflix Feign

Nå kan vi bruke @EnableFeignClients for å aktivere komponentskanning for alle grensesnitt som bruker @FeignClient.

For hvert eksempel vi utviklet ved hjelp av Spring Cloud Netflix Feign-prosjektet, bruker vi følgende import:

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

Implementeringen av alle funksjonene er nøyaktig den samme for den gamle og den nye versjonen.

5. Implementering med Spring Cloud OpenFeign

Sammenlignende inneholder vår Spring Cloud OpenFeign-opplæring det samme eksemplet som implementeringen med Spring Netflix Feign.

Den eneste forskjellen her er at importen vår kommer fra en annen pakke:

importere org.springframework.cloud.openfeign.FeignClient; importer org.springframework.cloud.openfeign.EnableFeignClients;

Alt annet er det samme, noe som ikke skulle komme som noen overraskelse på grunn av forholdet mellom disse to bibliotekene.

6. Sammenligning

Fundamentalt er disse to implementeringene av Feign identiske. Vi kan tilskrive dette at Netflix Feign er stamfar til OpenFeign.

Imidlertid inneholder Spring Cloud OpenFeign nye alternativer og funksjoner som ikke er tilgjengelige i Spring Cloud Netflix Feign.

Nylig kan vi få støtte for Micrometer, Dropwizard Metrics, Apache HTTP Client 5, Google HTTP client og mange flere.

7. Konklusjon

Denne artikkelen sammenlignet Spring Cloud-integrasjonene av OpenFeign og Netflix Feign. Som vanlig finner du kildene på GitHub for både Spring Cloud OpenFeign og Netflix Feign.


$config[zx-auto] not found$config[zx-overlay] not found