前言
本節內容主要介紹一下SpringCloud組件中微服務調用組件openfeign的一些高級特性的用法以及一些常用的開發配置,如openfeign的超時控制配置、openfeign的重試機制配置、openfeign集成高級的http客戶端、openfeign的請求與響應壓縮功能,以及如何開啟openfeign的日志查看功能,便于我們更好的定位問題等。關于微服務集成開發openfeign的實戰內容,可參考作者的往期博客內容。
正文
OpenFeign的日志配置
①在openfeign的配置類中添加日志的bean配置
@Bean
public Logger.Level feignLoggerLevel() {return Logger.Level.FULL;
}
②在調用方的配置文件applicaton.yml中,配置openfeign的接口日志,這里配置的是debug級別的日志
③ 啟動微服務項目,查看openfeign的接口調用日志
OpenFeign的超時配置
①openfeign超時的全局配置,這里設置為5秒鐘,如果沒有配置,系統默認配置是60秒
@Bean
public Request.Options options() {return new Request.Options(60, TimeUnit.SECONDS, 60, TimeUnit.SECONDS, true);
}
?②在接口提供方打斷點,模擬接口響應超時,通過日志,我們可以確認超時配置是否已經生效
③在調用方的配置文件application.yml中針對不同微服務配置超時時間,該配置優先級高于全局的配置
feign:client:config:aiyundun-manager: #服務提供方connectTimeout: 3000 # 連接超時時間,單位為毫秒readTimeout: 3000 # 讀取超時時間,單位為毫秒
?④局部配置測試結果
OpenFeign的請求重試機制設置
①在配置類中配置重試策略,如果不配置,默認是不開啟重試策略
@Bean
public Retryer myRetryer()
{//最大請求次數為3(1+2),初始間隔時間為100ms,重試間最大間隔時間為1sreturn new Retryer.Default(500,1,3);
}
?②查看測試日志,間隔3秒鐘會嘗試重復調用,嘗試調用了三次
OpenFeign的請求響應的壓縮功能配置
①在調用方配置文件application.yml中配置openfeign請求和響應的壓縮功能
feign:client:config:aiyundun-manager: #服務提供方connectTimeout: 3000 # 連接超時時間,單位為毫秒readTimeout: 3000 # 讀取超時時間,單位為毫秒compression:request:enabled: truemin-request-size: 2048 #最小觸發壓縮的大小mime-types: text/xml,application/xml,application/json #觸發壓縮數據類型response:enabled: true
?②查看openfeign調用日志
OpenFeign替換默認的http請求客戶端
①添加httpclient5客戶端maven依賴配置
<!-- httpclient5-->
<dependency><groupId>org.apache.httpcomponents.client5</groupId><artifactId>httpclient5</artifactId><version>5.3</version>
</dependency>
<!-- OpenFeign 依賴 -->
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-core</artifactId><version>11.5</version>
</dependency>
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId><version>11.5</version>
</dependency>
②在調用方的application.yml中開啟httpclient客戶端,默認就是開啟狀態,可跳過此步驟
③ 查看是否替換成功
結語
至此,關于openfeign的高級特性實戰內容介紹到這里就結束了,我們下期見。。。。。。