1 、请求压缩
Spring Cloud Feign支持对请求和响应进行GZIP压缩,以减少通信过程中的性能损耗。通过下面的参数即可开启请求与响应的压缩功能(consumer中进行配置):
feign:
compression:
request:
enabled: true # 开启请求压缩
response:
enabled: true # 开启响应压缩
2、 日志级别
前面讲过,通过 logging.level.xx=debug 来设置日志级别。然而这个对Fegin客户端而言不会产生效果。因为 @FeignClient 注解修改的客户端在被代理时,都会创建一个新的Fegin.Logger实例。我们需要额外指定这个日志的级别才可以。
在consumer的配置文件中设置com.icoding包下的日志级别都为debug;
logging:
level:
com.icoding: debug
在consumer编写配置类,定义日志级别
package com.icoding.config;
import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FeignConfig {
@Bean
public Logger.Level feignLoggerLevel(){
// 记录所有请求和响应的明细,包括头信息、请求体、元数据
return Logger.Level.FULL;
}
}
这里指定的Level级别是FULL,Feign支持4种级别:
NONE:不记录任何日志信息,这是默认值。
BASIC:仅记录请求的方法,URL以及响应状态码和执行时间
HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息
FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。
在consumer的UserClient中指定配置类
package com.icoding.client;
import com.icoding.client.fallback.UserClientFallback;
import com.icoding.config.FeignConfig;
import com.icoding.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@FeignClient(value = "user-service",
fallback = UserClientFallback.class,
configuration = FeignConfig.class)
public interface UserClient {
@GetMapping("/user/{id}")
User findOne(@PathVariable("id") Long id);
}
重启项目,即可看到每次访问的日志:
回复关键词
JUC 分布式限流 消息队列 alibaba JVM性能调优
看更多精彩教程
别忘了点个在看哦!转发那就太好了!