前言
本节内容主要介绍一下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的高级特性实战内容介绍到这里就结束了,我们下期见。。。。。。