Eureka に登録された REST サービスを呼び出すために、簡単な Spring Cloud リボン アプリケーションを作成しました。
しかし、値をオーバーライドする方法はribbon.serverListRefreshInterval
? デフォルト値は 30 秒ですが、時間間隔を短くしたいと思います。
前もって感謝します。
Eureka に登録された REST サービスを呼び出すために、簡単な Spring Cloud リボン アプリケーションを作成しました。
しかし、値をオーバーライドする方法はribbon.serverListRefreshInterval
? デフォルト値は 30 秒ですが、時間間隔を短くしたいと思います。
前もって感謝します。
試してみてください:
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));
}
2 つ目は、デフォルトの更新間隔をオーバーライドできるようにするものです。ただし、これは最初に呼び出されるものであるため、プロパティは無視されます。
更新 2:
これについて未解決の問題があります: https://github.com/spring-cloud/spring-cloud-netflix/issues/1304