@FeignClient设置超时时间
时间: 2023-10-14 21:00:14 浏览: 164
客户端设置超时时间真的很重要
@FeignClient可以通过contextId属性为不同的服务设置不同的超时时间,默认情况下contextId值为default。可以在配置文件中设置不同服务的超时时间。例如:
```
# Feign Clients contextId 默认配置名
feign.client.default-config=default
# 读取超时时间, 默认:60*1000 毫秒
feign.client.config.default.read-timeout=5000
# 请求超时时间,默认:10*1000 毫秒
feign.client.config.default.connect-timeout=10000
# 自定义读取超时时间
feign.client.config.custom.read-timeout=2000
# 自定义连接超时时间
feign.client.config.custom.connect-timeout=3000
```
你可以根据需要为每个服务设置不同的超时时间。默认情况下,@FeignClient会使用全局配置中的超时时间。如果需要使用自定义超时配置,可以在@FeignClient注解中指定contextId属性,并在配置文件中为该contextId设置超时时间。
另外,需要注意的是,通过Feign设置的连接时间和超时时间会覆盖OkHttpClient中的配置。如果需要在Feign中动态设置超时时间,可以添加一个拦截器并在其中设置超时时间。例如:
```java
@Bean("HttpClient")
public OkHttpClient okHttpClient(ConnectionPool connectionPool) {
return new OkHttpClient().newBuilder()
.connectionPool(connectionPool)
.connectTimeout(6, TimeUnit.SECONDS) // 该值在FeignClient体系中会被动态覆盖
.readTimeout(VmcConstants.TEN_SECONDS, TimeUnit.SECONDS) // 该值在FeignClient体系中会被动态覆盖
.addInterceptor(new OkHttpClientDynamicTimeoutInterceptor()) // 添加拦截器,支持动态设置超时时间
.eventListener(eventListener())
.build();
}
```
通过添加拦截器,可以在发送请求前动态设置超时时间。
请注意,以上解决方案适用于配置Hystrix和Ribbon的超时时间配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Feign请求设置全局|单个客户端超时时间](https://blog.csdn.net/yaomingyang/article/details/126254129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Feign Client的超时时间配置](https://blog.csdn.net/u013533380/article/details/114374428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文