建立服務消費通過Fegin呼叫

2021-10-23 08:37:10 字數 1459 閱讀 8357

本文**git位址 

前面,我們講述了如何通過resttemplate+ribbon去消費服務,現在我們講述一下如何通過feign去消費服務。 feign是乙個宣告式的偽http客戶端,它使得寫http客戶端變得更簡單。使用feign,只需要建立乙個介面並註解,就可以實現呼叫。feign預設整合了ribbon,並和eureka結合,預設實現了負載均衡的效果。

簡而言之:

feign 採用的是基於介面的註解

feign 整合了ribbon,具有負載均衡的能力

整合了hystrix,具有熔斷的能力

首先在父模組下,建立乙個名稱為consumer-fegin,pom.xml檔案配置如下:

instance-id: $:$建立啟動類,加上@enablefeignclients註解開啟feign的功能,如下:

@enableeurekaclient

@enablefeignclients

public static void main(string args) }

定義乙個feign介面,通過@ feignclient("服務名"),來指定呼叫哪個服務,**如下:

@feignclient("eureka-client-provider")

public inte***ce hellofeginclient

接下來建立乙個hellocontroller,**如下:

@restcontroller

public class hellocontroller

}

啟動服務,通過瀏覽器訪問http://localhost:8091/hello?name=xiaoming,返回結果如下:

通過fegin客戶端呼叫結果為:hello, xiaoming, 我是服務提供者:埠為:8080

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

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

通過 node 建立 web 伺服器

建立node 專案 並安裝 express,通過epxress 快速建立web伺服器,將vue 打包生成的dist 資料夾,託管為靜態資源即可,關鍵 建立資料夾 web vueshop 將vue打包的dist資料夾複製到web vueshop const express require expres...

不通過「新增引用服務」呼叫WebService介面

有時候,在呼叫外網的服務時,例如webservice服務,直接新增引用服務,有時候還要手動更新服務,比較不夠智慧型,如果能只通過傳入服務位址和引數就能獲取資料,那就最好不過。以下就是乙個例子 public static xelement webcallrequestfunc string param...