feignClient를 사용하다보면 외부 API를 호출해야하는 상황이 생기는데, timeout정책을 default정책과 다르게 별도로 설정할 수 있다.
외부 API를 호출하는 feignClient를 아래 코드와 같이 작성한다고 가정한다.
feignClient의 name은 example-client
이다.
@FeignClient(name = "example-client", url = "${example.url}")
public interface ExampleClient {
@PostMapping(value = "/test")
CompletableFuture<Void> test();
}
application.yml
에 별도 설정할 feignClient 이름으로 설정할 수 있다.
위 코드에서 외부 호출 feignClient name으로 지정한 example-client
를 config
하위로 작성하고, connectionTimeout
과 readTimeout
시간을 지정하면 된다.
feign:
client:
config:
default:
connectTimeout: 30000
readTimeout: 30000
example-client:
connectTimeout: 5000
readTimeout: 5000
별도로 설정한 timeout시간이 default timeout시간까지 변경되지는 않았는지 테스트를 꼭 해보는게 좋다.