通用应用程序属性
可以在应用程序中指定 application.properties / application.properties 文件,或作为命令行开关。本附录提供了通用Spring Cloud OpenFeign属性的列表,以及对使用它们的底层类的引用。
配置项 | 默认值 | 描述 |
---|---|---|
feign.client.config | ||
feign.client.default-config | default | |
feign.client.default-to-properties | true | |
feign.compression.request.enabled | false | 配置请求GZIP压缩。 |
feign.compression.request.mime-types | [text/xml, application/xml, application/json] | 配置压缩支持的MIME TYPE |
feign.compression.request.min-request-size | 2048 | 配置压缩数据大小的下限 |
feign.compression.response.enabled | false | 配置响应GZIP压缩。 |
feign.compression.response.useGzipDecoder | false | 启用默认的gzip解码器。 |
feign.httpclient.connection-timeout | 2000 | 连接超时时间(单位:秒) |
feign.httpclient.connection-timer-repeat | 3000 | |
feign.httpclient.disable-ssl-validation | false | |
feign.httpclient.enabled | true | 开启(true)/关闭(false) Apache HTTP请求方式 |
feign.httpclient.follow-redirects | true | |
feign.httpclient.max-connections | 200 | 线程池最大连接数(全局) |
feign.httpclient.max-connections-per-route | 50 | 线程池最大连接数(单个HOST) |
feign.httpclient.time-to-live | 900 | 线程存活时间(单位:秒) |
feign.httpclient.time-to-live-unit | ||
feign.hystrix.enabled | false | 开启(true)/关闭(false)Hystrix功能 |
feign.okhttp.enabled | false | 开启(true)/关闭(false) OK HTTP请求方式 |
Feign提供了两大类配置属性来配置上述三种HTTP客户端,feign.client.*和feign.httpclient.*,前者支持按实例进行配置(注解-1),后者全局共享一套配置,包含线程池配置,但只影响HttpClient和OkHttp,不影响HttpURLConnection,具体关系见下表。
注解-1:所谓按实例进行配置,就是指每个FeignClient实例都可以通过feign.client.<feignClientName>.*来单独进行配置,注意首字母小写。而feign.client.default.*表示默认配置。
HTTP客户端 | 连接超时时间 | 请求超时时间 | 线程存活时间 | 线程池最大连接数(全局) | 线程池最大连接数(单个HOST) |
---|---|---|---|---|---|
HttpURLConnection | feign.client.[default|<feignClientName>].connect-timeout 默认值:10秒 | feign.client.[default|<feignClientName>].read-timeout 默认值:60秒 | N/A | N/A | N/A |
HttpClient | feign.httpclient.connection-timeout 默认值:2秒 | 默认值: -1(RequestConfig.Builder.socketTimeout) | feign.httpclient.time-to-live 默认值:900秒 | feign.httpclient.max-connections 默认值:200 | feign.httpclient.max-connections-per-route 默认值:50 |
OkHttp | feign.httpclient.connection-timeout 默认值:2秒 | feign.client.[default|<feignClientName>].read-timeout 默认值:10秒 | feign.httpclient.time-to-live 默认值:900秒 | feign.httpclient.max-connections 默认值:200 | N/A |
从上表可以看到,Feign提供了两个连接超时配置,HttpURLConnection使用feign.client.[default|<feignClientName>].connect-timeout,而HttpClient和OkHttp则使用feign.httpclient.connection-timeout,这一点要尤其注意。
参考地址: