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