I have Spring Boot application with this Gradle dependencies:
compile("org.springframework.cloud:spring-cloud-starter-eureka")
compile("org.springframework.cloud:spring-cloud-starter-feign")
compile("org.springframework.cloud:spring-cloud-starter-ribbon")
compile("org.springframework.cloud:spring-cloud-starter-hystrix")
compile("org.springframework.cloud:spring-cloud-starter-config")
Also I have Feign client:
@FeignClient(name = "client")
public interface FeignService {
@RequestMapping(value = "/path", method = GET)
String response();
}
My application.properties
:
client.ribbon.listOfServers = http://localhost:8081
ribbon.eureka.enabled=false
When query time is more than 1 second I get exception:
com.netflix.hystrix.exception.HystrixRuntimeException: response timed-out and no fallback available.
So my question is: how can I set custom Feign client connection timeout? For example to 2 seconds.
I solved my problem using this answer on question: Hystrix command fails with “timed-out and no fallback available” .
I added hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=4000
to my application.properties
to set custom timeout.
You can be configured timeout using configuration properties on application.yaml file:
feign:
client:
config:
default:
connectTimeout: 5000
readTimeout: 5000
Notice that this will change your default feign configuration, if you want to update the timeouts just for your client replace default
with the name configured in @FeignClient
in your case it will be client
, another thing is that you must specify both connectTimeout
and readTimeout
for this to take effect.
For more detail see this: documentation
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.