返回介绍

其他配置

发布于 2024-08-18 11:12:34 字数 2530 浏览 0 评论 0 收藏 0

请求压缩

Spring Cloud Feign支持对请求与响应进行GZIP压缩,以减少通信过程中的性能损耗。我们只需通过下面两个参数设置,就能开启请求与响应的压缩功能:

feign.compression.request.enabled=true

feign.compression.response.enabled=true

同时,我们还能对请求压缩做一些更细致的设置,比如下面的配置内容指定了压缩的请求数据类型,并设置了请求压缩的大小下限,只有超过这个大小的请求才会对其进行压缩。

feign.compression.request.enabled=true

feign.compression.request.mime-types=text/xml,application/xml,application/json

feign.compression.request.min-request-size=2048

上述配置的feign.compression.request.mime-types和feign.compression.request.min-request-size均为默认值。

日志配置

Spring Cloud Feign在构建被@FeignClient注解修饰的服务客户端时,会为每一个客户端都创建一个feign.Logger实例,我们可以利用该日志对象的DEBUG模式来帮助分析Feign的请求细节。可以在application.properties文件中使用logging.level.<FeignClient>的参数配置格式来开启指定 Feign 客户端的 DEBUG 日志,其中<FeignClient>为Feign 客户端定义接口的完整路径,比如针对本章中我们实现的HelloService可以按如下配置开启:

logging.level.com.didispace.web.HelloService=DEBUG

但是,只是添加了如上配置,还无法实现对 DEBUG 日志的输出。这时由于 Feign 客户端默认的Logger.Level对象定义为NONE级别,该级别不会记录任何Feign调用过程中的信息,所以我们需要调整它的级别,针对全局的日志级别,可以在应用主类中直接加入Logger.Level的Bean创建,具体如下:

@EnableFeignClients

@EnableDiscoveryClient

@SpringBootApplication

public class ConsumerApplication {

@Bean

Logger.Level feignLoggerLevel(){

return Logger.Level.FULL;

}

public static void main(String[]args){

SpringApplication.run(ConsumerApplication.class,args);

}

}

当然也可以通过实现配置类,然后在具体的 Feign 客户端来指定配置类以实现是否要调整不同的日志级别,比如下面的实现:

@Configuration

public class FullLogConfiguration {

@Bean

Logger.Level feignLoggerLevel(){

return Logger.Level.FULL;

}

}

@FeignClient(name="HELLO-SERVICE",configuration=FullLogConfiguration.class)

public interface HelloService {

...

}

在调整日志级别为FULL 之后,我们可以再访问一下之前的http://localhost:9001/feign-consumer接口,这时我们在feign-consumer的控制台中就可以看到类似下面的请求详细日志:

对于Feign的Logger级别主要有下面4类,可根据实际需要进行调整使用。

- NONE:不记录任何信息。

- BASIC:仅记录请求方法、URL以及响应状态码和执行时间。

- HEADERS:除了记录BASIC级别的信息之外,还会记录请求和响应的头信息。

- FULL:记录所有请求与响应的明细,包括头信息、请求体、元数据等。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文