Spring-Cloud-OpenFeign 配置详解
SpringCloudOpenfeign 基于openfeign 来实现的,如果要理解相关原理,建议学习下openfeign,下图openfeign 核心类是:
Spring-Cloud-OpenFeign 配置属性
属性 | 默认值 | 描述 |
---|---|---|
feign.autoconfiguration.jackson.enabled | false | 如果为true,则将提供PageJacksonModule、SortJacksonModule用jackson对Page进行编码和解码操作,比如:Feign使用JPA分页类Page和Pageable抛出序列化异常,需要开启true |
feign.circuitbreaker.enabled | false | circuitbreaker启用状态 |
feign.circuitbreaker.group.enabled | false | 是否启用circuitbreaker group,需要先启动feign.circuitbreaker.enabled=true,该属性针对spring-cloud-openfeign3.0 版本以上才有 |
feign.client.decode-slash | true | Feign 客户端默认不编码斜杠/字符。要更改此行为,请将 decodeSlash 设置为 false |
feign.client.default-config | default | feign client 默认配置为default,比如我们给feign 配置全局设置,feign.client.default.connectTimeout=14000 |
feign.client.default-to-properties | true | 如果为true,通过applicationContext 上下文去获取feign config 相关bean |
feign.client.refresh-enabled | false | 是否开启/refresh 功能 |
feign.compression.request.enabled | false | Feign http 发送的请求能够被压缩 |
feign.compression.request.mime-types | [text/xml, application/xml, application/json] | feign http 请求压缩支持的mime-types |
feign.compression.request.min-request-size | 2048 | feign http request content size |
feign.compression.response.enabled | false | 开启feign http response 内容压缩 |
feign.compression.response.useGzipDecode | false | 是否使用GzipDecoder 来压缩 response 内容 |
feign.httpclient.connection-timeout | 2000 | feign http 请求连接超时时间 |
feign.client.config.default.connectTimeout | 10s | feign client 连接超时时间 |
feign.client.config.default.readTimeout | 60s | feign client 连接响应超时时间 |
feign.httpclient.connection-timer-repeat | 3000 | 定时检测http连接存活情况任的调度频率 |
feign.httpclient.disable-ssl-validation | false | 是否校验ssl 证书有效性 |
feign.httpclient.enabled | true | 默认http client 为jdk ULRConnection,如果依赖apache http client jar 包,就会启用 |
feign.httpclient.follow-redirects | true | 是否支持http 请求转发 |
feign.httpclient.max-connections | 200 | feign http 连接池大小 |
feign.httpclient.max-connections-per-route | 50 | feign htpp 请求port 或url 单个不超过50 |
feign.httpclient.time-to-live | 900 | feign http 连接存活时间 |
feign.okhttp.enabled | false | 开启okhttp |
Feign client 配置属性
常用的配置属性
- loggerLevel 设置feign client 日志级别
- connectTimeout 设置连接超时时间
- readTimeout 设置响应时间
- retryer 重试实现类
- errorDecoder 针对http状态码为4XX,5XX处理
- requestInterceptors 请求拦截器,特定场景会使用到,比如在request header 添加固定值
- defaultRequestHeaders 默认request header
- defaultQueryParameters 默认查询参数设置
- decoder request 编码–序列化
- encoder response 解码–反序列化
- contract feignContract 默认为SpringMvcContract
- exceptionPropagationPolicy 异常堆栈显示策略,NONE显示所以堆栈信息,UNWRAP 显示Cause相关信息