您好,登錄后才能下訂單哦!
這篇文章主要介紹了OpenFeign如何使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇OpenFeign如何使用文章都會有所收獲,下面我們一起來看看吧。
OpenFeign
是一個聲明式的http客戶端,讓編寫web服務客戶端變的非常容易,只需要創建一個接口并在接口上添加注解即可,OpenFeign的前身是Feign,后者目前已經停更了,OpenFeign是SpringCloud在Feign的基礎上支持了Spring MVC的注解,并通過動態代理的方式產生實現類來做負載均衡并進行調用其他服務。
Ribbon+RestTemplate過于繁瑣,通過OpenFeign可以簡化開發
以用戶服務調用商品為例
用戶服務配置 OpenFeign
導入依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
啟動類上加注解
在商品服務中寫被調用接口(無參接口測試)
在用戶服務中 直接使用Feign寫服務調用
創建一個普通的Java接口
通過注解聲明當前接口為 Feign的客戶端
在Feign接口中 寫服務調用的方法
在用戶服務的Controller中使用Feign接口
啟動所有服務 兩個商品服務 一個用戶服務 注冊中心 訪問用戶服務觀察服務調用
訪問用戶服務的Controller 可以看到負載均衡的效果
流程
參數傳遞都是json 實際上是RestFul的請求
/{} 拼接參數
被調用接口示例【商品服務】
Feign接口示例【用戶服務】
?拼接參數 對應常見請求類型Get請求
被調用接口示例【商品服務】
Feign接口示例【用戶服務】
請求體傳遞參數 對應常見請求Post請求
被調用接口示例【商品服務】
Feign接口示例【用戶服務】
Feign 和 RestTemplate 不一樣 ,對請求細節封裝的更加徹底,不管是請求還是請求的參數,還是響應的狀態都看不到,想要看到請求的細節需要通過Feign的日志
Feign日志的配置
1.配置類 @Bean
[@Bean](https://my.oschina.net/bean) public Logger.Level feignConfig(){ return Logger.Level.FULL; }
2.在配置文件中開啟Feign接口所在包的日志
通過以上配置 重啟項目 再次使用Feign服務調用 就會看到如下日志:
在默認情況下 spring cloud feign在進行各個子服務之間的調用時,http組件使用的是jdk的HttpURLConnection,沒有使用線程池。
有2種可選的線程池:HttpClient和OKHttp,比較推薦OKHttp,請求封裝的非常簡單易用,性能也很ok。
添加依賴
<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> </dependency>
修改配置文件
feign: okhttp: enabled: true httpclient: enabled: false max-connections: 1000 max-connections-per-route: 100
max-connections:最大連接數
max-connections-per-route:每個url的連接數
開啟壓縮可以有效節約網絡資源,但是會增加CPU壓力,建議把最小壓縮的文檔大小適度調大一點
## 開啟Feign請求響應壓縮 feign.compression.request.enabled=true feign.compression.response.enabled=true ## 配置壓縮文檔類型及最小壓縮的文檔大小 feign.compression.request.mime-types=text/xml,application/xml,application/json feign.compression.request.min-request-size=2048
關于“OpenFeign如何使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“OpenFeign如何使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。