I wrote a simple Spring Cloud Ribbon application, to call a REST service which was registered in Eureka.
But how to override the ribbon.serverListRefreshInterv
@codependent
After put below configuration in application.yml, it looked the configuration didnt take effect.
Compute-Service:
ribbon:
ServerListRefreshInterval: 1000
I observed that the instances list has been updated in Ribbon side (through eureka.client.registry-fetch-interval-seconds parameter), however Ribbon still point out a dead instance:
[tbeatExecutor-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_RIBBON-CONSUMER/192.168.1.101:Ribbon-Consumer:3333 - Heartbeat status: 200
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Got delta update with apps hashcode UP_2_
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Added instance 192.168.1.101:Ribbon-Consumer:3333 to the existing apps in region null
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Deleted instance 192.168.1.101:Compute-Service:2222 to the existing apps
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Added instance 192.168.1.101:Compute-Service:1111 to the existing apps in region null
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : The total number of instances fetched by the delta processor : 3
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : The total number of all instances in the client now is 2
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Completed cache refresh task for discovery. All Apps hash code is Local region apps hashcode: UP_2_, is fetching remote regions? false
[nio-3333-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://Compute-Service/add": Connection refused; nested exception is java.net.ConnectException: Connection refused] with root cause
192.168.1.101:Compute-Service:1111 was right service instance, while 192.168.1.101:Compute-Service:2222 was dead instance, obviously Ribbon still pointed to the dead instance, which meant Ribbon ServerList cache was not refreshed.