feign 超时方法yml配置详解
时间: 2023-07-07 16:34:08 浏览: 117
在使用 Feign 进行服务间通讯时,为了避免因服务调用超时导致的问题,需要对超时时间进行配置。Feign 提供了两种方式进行超时时间的配置,分别是全局配置和单个请求配置。
全局配置:
在 Feign 的配置文件中添加以下属性进行全局配置:
```
feign:
client:
config:
default:
connectTimeout: 5000
readTimeout: 5000
```
其中,`connectTimeout` 表示连接超时时间,`readTimeout` 表示读取超时时间,单位均为毫秒。
单个请求配置:
在定义 Feign 接口方法时,可以使用 `@FeignClient` 注解的 `configuration` 属性指定一个配置类,并在该配置类中进行单个请求的超时时间配置。示例代码如下:
```
@FeignClient(name = "example", configuration = ExampleFeignConfig.class)
public interface ExampleFeignClient {
@GetMapping("/example")
@Headers("Content-Type: application/json")
@RequestLine("GET /example")
public String getExample();
}
@Configuration
public class ExampleFeignConfig {
@Bean
public Request.Options options() {
return new Request.Options(5000, 5000);
}
}
```
在上述示例中,`ExampleFeignConfig` 类中的 `options` 方法返回一个 `Request.Options` 对象,其中第一个参数表示连接超时时间,第二个参数表示读取超时时间,单位均为毫秒。
需要注意的是,单个请求配置会覆盖全局配置。所以如果在全局配置中已经指定了超时时间,而在单个请求配置中又指定了不同的超时时间,那么实际生效的是单个请求配置中指定的超时时间。
阅读全文