這篇文章主要介紹了OpenFeign如何使用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇OpenFeign如何使用文章都會(huì)有所收獲,下面我們一起來看看吧。
站在用戶的角度思考問題,與客戶深入溝通,找到克拉瑪依區(qū)網(wǎng)站設(shè)計(jì)與克拉瑪依區(qū)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋克拉瑪依區(qū)地區(qū)。
OpenFeign
是一個(gè)聲明式的http客戶端,讓編寫web服務(wù)客戶端變的非常容易,只需要?jiǎng)?chuàng)建一個(gè)接口并在接口上添加注解即可,OpenFeign的前身是Feign,后者目前已經(jīng)停更了,OpenFeign是SpringCloud在Feign的基礎(chǔ)上支持了Spring MVC的注解,并通過動(dòng)態(tài)代理的方式產(chǎn)生實(shí)現(xiàn)類來做負(fù)載均衡并進(jìn)行調(diào)用其他服務(wù)。
Ribbon+RestTemplate過于繁瑣,通過OpenFeign可以簡(jiǎn)化開發(fā)
以用戶服務(wù)調(diào)用商品為例
用戶服務(wù)配置 OpenFeign
導(dǎo)入依賴
org.springframework.cloud spring-cloud-starter-openfeign
啟動(dòng)類上加注解
在商品服務(wù)中寫被調(diào)用接口(無參接口測(cè)試)
在用戶服務(wù)中 直接使用Feign寫服務(wù)調(diào)用
創(chuàng)建一個(gè)普通的Java接口
通過注解聲明當(dāng)前接口為 Feign的客戶端
在Feign接口中 寫服務(wù)調(diào)用的方法
在用戶服務(wù)的Controller中使用Feign接口
啟動(dòng)所有服務(wù) 兩個(gè)商品服務(wù) 一個(gè)用戶服務(wù) 注冊(cè)中心 訪問用戶服務(wù)觀察服務(wù)調(diào)用
訪問用戶服務(wù)的Controller 可以看到負(fù)載均衡的效果
流程
參數(shù)傳遞都是json 實(shí)際上是RestFul的請(qǐng)求
/{} 拼接參數(shù)
被調(diào)用接口示例【商品服務(wù)】
Feign接口示例【用戶服務(wù)】
?拼接參數(shù) 對(duì)應(yīng)常見請(qǐng)求類型Get請(qǐng)求
被調(diào)用接口示例【商品服務(wù)】
Feign接口示例【用戶服務(wù)】
請(qǐng)求體傳遞參數(shù) 對(duì)應(yīng)常見請(qǐng)求Post請(qǐng)求
被調(diào)用接口示例【商品服務(wù)】
Feign接口示例【用戶服務(wù)】
Feign 和 RestTemplate 不一樣 ,對(duì)請(qǐng)求細(xì)節(jié)封裝的更加徹底,不管是請(qǐng)求還是請(qǐng)求的參數(shù),還是響應(yīng)的狀態(tài)都看不到,想要看到請(qǐng)求的細(xì)節(jié)需要通過Feign的日志
Feign日志的配置
1.配置類 @Bean
[@Bean](https://my.oschina.net/bean) public Logger.Level feignConfig(){ return Logger.Level.FULL; }
2.在配置文件中開啟Feign接口所在包的日志
通過以上配置 重啟項(xiàng)目 再次使用Feign服務(wù)調(diào)用 就會(huì)看到如下日志:
在默認(rèn)情況下 spring cloud feign在進(jìn)行各個(gè)子服務(wù)之間的調(diào)用時(shí),http組件使用的是jdk的HttpURLConnection,沒有使用線程池。
有2種可選的線程池:HttpClient和OKHttp,比較推薦OKHttp,請(qǐng)求封裝的非常簡(jiǎn)單易用,性能也很ok。
添加依賴
com.squareup.okhttp3 okhttp
修改配置文件
feign: okhttp: enabled: true httpclient: enabled: false max-connections: 1000 max-connections-per-route: 100
max-connections:最大連接數(shù)
max-connections-per-route:每個(gè)url的連接數(shù)
開啟壓縮可以有效節(jié)約網(wǎng)絡(luò)資源,但是會(huì)增加CPU壓力,建議把最小壓縮的文檔大小適度調(diào)大一點(diǎn)
## 開啟Feign請(qǐng)求響應(yīng)壓縮 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
關(guān)于“OpenFeign如何使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“OpenFeign如何使用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。