Feign 微服務互相呼叫 概念

2021-10-19 03:38:12 字數 1097 閱讀 2270

一、feign

1、基本概念

feign是netflix開發的宣告式、模板化的http客戶端, feign可以幫助我們更快捷、優雅地呼叫http api。

feign支援多種註解,例如feign自帶的註解或者jax-rs註解等。

spring cloud對feign進行了增強,使feign支援了spring mvc註解,並整合了ribbon和eureka,從而讓feign的使用更加方便。

spring cloud feign是基於netflix feign實現,整合了spring cloud ribbon和spring cloud hystrix,除了提供這兩者的強大功能外,還提供了一種宣告式的web服務客戶端定義的方式。

spring cloud feign幫助我們定義和實現依賴服務介面的定義。在spring cloud feign的實現下,只需要建立乙個介面並用註解方式配置它,即可完成服務提供方的介面繫結,簡化了在使用spring cloud ribbon時自行封裝服務呼叫客戶端的開發量。

二、實現服務呼叫

1、需求

2、新增pom依賴

org.springframework.cloud

spring-cloud-starter-openfeign

3、在呼叫端的啟動類新增註解

@enablefeignclients

@component註解防止,在其他位置注入codclient時idea報錯

@feignclient("service-vod")

@component

public inte***ce vodclient

5、呼叫微服務

在呼叫端的videoserviceimpl中呼叫client中的方法

@override

public boolean removevideobyid(string id)

​ return null != result && result > 0;

}

6、測試

啟動相關微服務

微服務宣告式呼叫元件 Feign

宣告式rest客戶端 採用基於介面的註解方式 注意 是在服務呼叫方去宣告介面,然後跟服務提供方的api進行對應,這樣就可以呼叫了 org.springframework.cloud spring cloud starter openfeign 啟動類新增註解 enablefeignclients 此...

微服務消費端通過feign呼叫微服異常問題

在專案開發中,我們的呼叫方通過feign呼叫微服時,如果微服出現業務異常 例如空指標,或拋出自定義的異常 和非業務異常 引數不合法4xx異常 都會進入到呼叫方的全域性異常 丟擲的code全部轉換成了500,這樣不友好 實際上只有業務異常feign才會轉換成500錯誤且轉成feignexception...

服務呼叫Feign

org.springframework.cloud spring cloud starter openfeign enablefeignclients建立client包 feignclient註解用於指定從哪個服務中呼叫功能 名稱與被呼叫的服務名保持一致。pathvariable註解一定要指定引數名...