Feign
Netflix开源的声明书HTTP客户端
Feign组件
Feign.Builder : 构建每一个FeignClient
Client :需要注意的是 feign.Client.default未使用连接池, 而LoadBalancerFeignClient在默认情况下可以看做是具有负载均衡功能的FeignClient
自定义Feign日志级别
Java配置类的方式指定
通过注解在FeignClient的@FeignClient的configuration属性中所配置Logger.Level类进行指定
@FeignClient(name = "userCenter", path = "user", configuration = UserCenterFeignClientConfig.class)
public interface UserCenterFeignClient {
...
}
UserCenterFeignClientConfig.java
public class UserCenterFeignClientConfig {
@Bean
public Logger.Level level() {
return Logger.Level.FULL;
}
}
配置属性的方式进行指定
feign.client.config.userCenter.logger-level = full
Feign的全局配置
- Java代码方式
- 配置属性方式
Java代码方式
@EnableFeignClients(defaultConfiguration = CustomDefaultFeignClientConfig.class)
public class CustomDefaultFeignClientConfig {
@Bean
public Logger.Level level() {
return Logger.Level.FULL;
}
}
配置属性方式
feign.client.config.default.logger-level = full
支持的配置项
Java代码方式支持的
配置属性方式支持的
Ribbon配置与Feign配置
Feign性能优化
- 连接池
- 日志级别
连接池
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
feign.httpclient.enabled=true