[SPRING] Spring Cloud Ribbon에서 ribbon.serverListRefreshInterval 기본값을 재정의하는 방법은 무엇입니까?
SPRINGSpring Cloud Ribbon에서 ribbon.serverListRefreshInterval 기본값을 재정의하는 방법은 무엇입니까?
Eureka에 등록 된 REST 서비스를 호출하기 위해 간단한 Spring Cloud Ribbon 애플리케이션을 작성했습니다.
그러나 ribbon.serverListRefreshInterval 값을 재정의하는 방법은 무엇입니까? 기본값은 30 초입니다. 시간 간격을 줄이고 싶습니다.
미리 감사드립니다.
해결법
-
==============================
1.사용해보기 :
사용해보기 :
myService.ribbon.ServerListRefreshInterval=10000
여기서 myService는 대상 마이크로 서비스의 이름입니다.
최신 정보:
일부 소스 코드를 파고 나면 LoadBalancerBuilder가 호출한다는 것을 알게되었습니다.
@Deprecated public ZoneAwareLoadBalancer(IClientConfig clientConfig, IRule rule, IPing ping, ServerList<T> serverList, ServerListFilter<T> filter) { super(clientConfig, rule, ping, serverList, filter); }
누구의 슈퍼입니까?
@Deprecated public DynamicServerListLoadBalancer(IClientConfig clientConfig, IRule rule, IPing ping, ServerList<T> serverList, ServerListFilter<T> filter) { this( clientConfig, rule, ping, serverList, filter, new PollingServerListUpdater() ); }
PollingServerListUpdater 생성자를 확인하십시오.
private static int LISTOFSERVERS_CACHE_REPEAT_INTERVAL = 30 * 1000; // msecs; public PollingServerListUpdater() { this(LISTOFSERVERS_CACHE_UPDATE_DELAY, LISTOFSERVERS_CACHE_REPEAT_INTERVAL); } public PollingServerListUpdater(IClientConfig clientConfig) { this(LISTOFSERVERS_CACHE_UPDATE_DELAY, getRefreshIntervalMs(clientConfig)); }
두 번째는 기본 새로 고침 간격을 무시할 수 있습니다. 그러나 이것은 처음 호출 된 것이므로 de property를 무시합니다.
업데이트 2 :
이에 대한 공개 문제가 있습니다. https://github.com/spring-cloud/spring-cloud-netflix/issues/1304
-
==============================
2.@codependent
@codependent
application.yml에 아래의 설정을 입력하면 설정이 적용되지 않은 것으로 보입니다.
Compute-Service: ribbon: ServerListRefreshInterval: 1000
인스턴스 목록이 리본 측면에서 (eureka.client.registry-fetch-interval-seconds 매개 변수를 통해) 업데이트되었지만 여전히 리본이 죽은 인스턴스를 가리키는 것을 관찰했습니다.
[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은 올바른 서비스 인스턴스 였고 192.168.1.101:Compute-Service:2222는 죽은 인스턴스 였지만 분명히 리본이 아직 작동하지 않는 인스턴스를 가리켰습니다. 즉, 리본 서버 목록 캐시가 새로 고쳐지지 않았습니다.
from https://stackoverflow.com/questions/39567078/how-to-override-the-ribbon-serverlistrefreshinterval-default-value-in-spring-clo by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] CreateQuery가 활성 트랜잭션없이 유효하지 않습니다. (0) | 2019.04.22 |
---|---|
[SPRING] 상속 된 클래스의 봄 MVC 유효성 검사 (0) | 2019.04.22 |
[SPRING] @Autowired 여러 번 사용하기 (0) | 2019.04.22 |
[SPRING] Jackson 순환 의존성 (0) | 2019.04.22 |
[SPRING] Spring @Transactional은 동적 인 Jdk 프록시와 aspectj aspect로 적용된다. (0) | 2019.04.22 |