Feign配置
1. Feign配置源码
public static class FeignClientConfiguration {
private Level loggerLevel;
private Integer connectTimeout;
private Integer readTimeout;
private Class<Retryer> retryer;
private Class<ErrorDecoder> errorDecoder;
private List<Class<RequestInterceptor>> requestInterceptors;
private Map<String, Collection<String>> defaultRequestHeaders;
private Map<String, Collection<String>> defaultQueryParameters;
private Boolean decode404;
private Class<Decoder> decoder;
private Class<Encoder> encoder;
private Class<Contract> contract;
private ExceptionPropagationPolicy exceptionPropagationPolicy;
}
2. 以上对应的Feign属性配置
feign:
client:
config:
user-center:
connectTimeout: 5000
readTimeout: 5000
loggerLevel: full
errorDecoder: com.example.SimpleErrorDecoder
retryer: com.example.SimpleRetryer
requestInterceptors:
- com.example.FooRequestInterceptor
defaultQueryParameters:
query: queryValue
defaultRequestHeaders:
header: headerValue
decode404: false
encoder: com.example.SimpleEncoder
decoder: com.example.SimpleDecoder
contract: com.example.SimpleContract
配置全局日志级别
feign:
client:
config:
default:
loggerLevel: full
Feign性能优化
1. 设置连接池
1.1. 搭配httpclient
a. 引入依赖
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
b. 写配置
feign:
client:
config:
user-center:
loggerLevel: full
httpclient:
enabled: true
max-connections: 200
max-connections-per-route: 50
1.2. 或者搭配okhttp
a. 引入依赖
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
<version>11.0</version>
</dependency>
b. 写配置
feign:
client:
config:
user-center:
loggerLevel: full
okhttp:
enabled: true
max-connections: 200
max-connections-per-route: 50
2. 设置Feign日志级别为NONE或BASIC