Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

feign.RetryableException: Read timed out executing GET

I have below architecture in my projectenter image description here

My UI Service(Port 8080) making Feign call to Gateway Service(Port 8085).
My Get call from UI service is " http://localhost:8080/invoice-list?startDate=2018-08-05&endDate=2018-10-05 "
Similar call from Gateway Service "http://localhost:8085/invoice-download-service/invoice-list?startDate=2018-08-05&endDate=2018-10-05"

When i make this GET call from UI service i get below error within minute

 is feign.RetryableException: Read timed out executing GET http://localhost:8085/invoice-download-service/invoice-list?startDate=2018-08-05&endDate=2018-10-05] with root cause

java.net.SocketTimeoutException: Read timed out

But when i make direct call from Gateway Server to microservice, i dont get error.

Application.properties file of Gateway service

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=160000000

ribbon.OkToRetryOnAllOperations=true
ribbon.ReadTimeout=5000000
ribbon.ConnectTimeout=5000000
ribbon.MaxAutoRetries=3
ribbon.MaxAutoRetriesNextServer=3


zuul.host.socket-timeout-millis= 5000000
zuul.host.connect-timeout-millis= 5000000

Here i have set readtimeout and connecttimeout property around 8 to 10 min, hence i am not getting error.

Application.properties file of UI service

spring.application.name=external-ui-service

server.port=8080

Here in UI service i dont have timeout property. I tried above properties here but not working. Obviously this UI service is not using ribbon,zuul etc. This is just an making Feign call to gateway.

So what should i do to increase timeout in UI service?

like image 953
chaitanya dalvi Avatar asked Oct 05 '18 11:10

chaitanya dalvi


People also ask

How do I set timeout in feign client?

Feign Client is pretty configurable. In terms of a timeout, it allows us to configure both read and connection timeouts. Connection timeout is the time needed for the TCP handshake, while the read timeout needed to read data from the socket. Connection and read timeouts are by default 10 and 60 seconds, respectively.

What is feign RetryableException?

public class RetryableException extends FeignException. This exception is raised when the Response is deemed to be retryable, typically via an ErrorDecoder when the status is 503.

Why does Java net Sockettimeoutexception read timed out?

Root Cause This problem is caused by an environment issue, such as: Server is trying to read data from the request, but its taking longer than the timeout value for the data to arrive from the client. Timeout here would typically be tomcat connector -> connectionTimeout attribute.


1 Answers

Added below properties in UI Service's application.propeties file.

feign.client.config.default.connectTimeout: 160000000
feign.client.config.default.readTimeout: 160000000
like image 171
chaitanya dalvi Avatar answered Sep 17 '22 03:09

chaitanya dalvi