javascript
Spring Cloud Alibaba - 14 OpenFeign自定义配置 + 调用优化 + 超时时间
文章目錄
- 打印Feign調(diào)用日志
- 日志級(jí)別
- 三部曲
- step1 添加Feign的自定義配置
- step2 聲明式接口指定配置
- Step3 聲明式接口包日志級(jí)別調(diào)整為DEBUG
- 驗(yàn)證
- 基于yml文件細(xì)粒度配置日志
- 調(diào)用方配置yml
- 驗(yàn)證
- 使用Feign原生的注解配置
- 攔截器的應(yīng)用配置
- Feign調(diào)用優(yōu)化方案
- Step 1 開啟連接池配置
- Step 2 調(diào)整Feign的日志級(jí)別(強(qiáng)烈推薦使用Basic級(jí)別的)
- Feign的生產(chǎn)實(shí)踐 (Feign的超時(shí)為準(zhǔn))
- 服務(wù)方模擬響應(yīng)過長(zhǎng)
- 超時(shí)設(shè)置
- 驗(yàn)證
- 源碼
打印Feign調(diào)用日志
默認(rèn)情況下,Feign的調(diào)用式不打印日志,我們需要通過自定義來打印我們的Feign的日志, 生產(chǎn)環(huán)境推薦basic
日志級(jí)別
| NONE(默認(rèn)) | 不記錄任何信息 |
| BASIC | 僅記錄請(qǐng)求方法、URL、響應(yīng)狀態(tài)和執(zhí)行時(shí)間 |
| HEADERS | 在BASIC基礎(chǔ)上,記錄請(qǐng)求和響應(yīng)的HEADER |
| FULL | 記錄請(qǐng)求和響應(yīng)的HEADER、BODY和元數(shù)據(jù) |
三部曲
step1 添加Feign的自定義配置
子模塊 artisan-feign-api 增加 配置
import feign.Logger; import org.springframework.context.annotation.Bean;/*** @author 小工匠* @version 1.0* @description: 千萬不要添加@Configuration,不然會(huì)被作為全局配置文件共享* @date 2022/2/3 22:19* @mark: show me the code , change the world*/public class ProductCenterFeignConfig {@Beanpublic Logger.Level level(){return Logger.Level.BASIC;} }千萬不要添加@Configuration,不然會(huì)被作為全局配置文件共享
step2 聲明式接口指定配置
子模塊 artisan-feign-api
Step3 聲明式接口包日志級(jí)別調(diào)整為DEBUG
接口調(diào)用方 artisan-cloud-feign-order 的 application.yml
# 子模塊下的聲明式接口包 日志級(jí)別必須是debug ,不然不打印日志 logging:level:com:artisan:feignapi: debug驗(yàn)證
啟動(dòng)兩個(gè)服務(wù),訪問 http://localhost:8080/selectOrderInfoById/1
觀察order的日志
基于yml文件細(xì)粒度配置日志
調(diào)用方配置yml
在調(diào)用方artisan-cloud-feign-order ,通過feign:client:config:微服務(wù)名稱:loggerLevel: 日志級(jí)別來指定
# 基于yml文件細(xì)粒度配置 - 通過feign:client:config:微服務(wù)名稱:loggerLevel日志級(jí)別來指定 feign:client:config:artisan-product-center:loggerLevel: full支持配置多個(gè)
我們?cè)賮韨€(gè) artisan-cloud-feign-pay 服務(wù)驗(yàn)證下
驗(yàn)證
啟動(dòng)服務(wù),分別訪問接口,觀察日志
使用Feign原生的注解配置
根據(jù)自動(dòng)裝配我們FeignClients的配置中的默認(rèn)鍥約是springmvc , 如果需要修改的話,修改契約即可(使用Feign原生的API)
用的較少, 這里就不演示了。
攔截器的應(yīng)用配置
Spring Cloud Alibaba - 15 微服務(wù)之間使用Feign實(shí)現(xiàn)參數(shù)的透?jìng)?/p>
Feign調(diào)用優(yōu)化方案
Step 1 開啟連接池配置
Step 2 調(diào)整Feign的日志級(jí)別(強(qiáng)烈推薦使用Basic級(jí)別的)
方法見上文
Feign的生產(chǎn)實(shí)踐 (Feign的超時(shí)為準(zhǔn))
Feign的底層用的是Ribbon,那么我們?cè)趺磁渲贸瑫r(shí)時(shí)間呢?
我們來測(cè)試下
服務(wù)方模擬響應(yīng)過長(zhǎng)
超時(shí)設(shè)置
驗(yàn)證
那如果我們換一下呢 (Ribbon 設(shè)置 5秒, Feign設(shè)置2秒 , Product仍然休眠3秒) 。看下什么情況
測(cè)試一下看看呢
源碼
https://github.com/yangshangwei/SpringCloudAlibabMaster
總結(jié)
以上是生活随笔為你收集整理的Spring Cloud Alibaba - 14 OpenFeign自定义配置 + 调用优化 + 超时时间的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Cloud Alibaba
- 下一篇: Spring Cloud Alibaba