微服务分布式架构基础与实战:基于Spring Boot + Spring Cloud
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.5 Feign的配置

Feign在Spring Boot微服务的application资源配置文件中支持传输数据压缩配置、日志配置和超时配置。传输数据压缩配置可减少Feign的Client端调用接口所需的字节数量,加快传输速度。日志配置方便管理Feign自身调用的日志信息,在实际生产中可以减少日志存储量,并方便日志的归档、总结和管理。超时配置可定义在Feign的Client端调用接口时,Server端接口多久不响应则Feign进行降级回退处理。降级回退可参见3.6节。

3.5.1 传输数据压缩配置

Feign支持对响应进行GZIP压缩,用于提高Server端和Client端的通信效率,在相应的资源配置文件中进行配置即可,不需要进行额外操作,配置代码如下。

3.5.2 日志配置

Feign中的每个@FeignClient注解都会生成一个FeignClient实例,每个FeignClient实例都会对应一个Feign.Logger日志输出实例,每个Feign.Logger日志输出实例都会根据资源配置文件中规定的日志输出规范,进行日志输出,配置代码如下。

none下的日志输入如图3-23所示。

图3-23

none级别不会输出任何Feign相关的日志,图3-23中的日志是System.out.print输出的。Feign通过不同的日志级别输出不同规范的日志。如表3-7所示,可以设置任意FeignClient日志级别。

表3-7 FeignClient的日志级别及释义

Feign默认使用full级别记录日志。

3.5.3 超时配置

Feign可以通过内置的Ribbon负载均衡器设置超时时间,配置代码如下。

以上时间单位均为毫秒,为了显示相应效果,此处设置100毫秒。如果Feign调用端设置了如上配置,Feign的服务端可以增加相应的线程停止代码,方便测试超时后的效果,部分代码如下。

若每次服务调用该接口停留时间过长,Feign则会直接进行降级回退处理,运行结果如图3-24所示。

图3-24

虽然服务端依旧进行处理,但因调用端认为此响应时间超长而直接进行回退,并不因为接口错误进行回退。服务端日志如图3-25所示。

图3-25