6

Eureka に登録された REST サービスを呼び出すために、簡単な Spring Cloud リボン アプリケーションを作成しました。

しかし、値をオーバーライドする方法はribbon.serverListRefreshInterval? デフォルト値は 30 秒ですが、時間間隔を短くしたいと思います。

前もって感謝します。

4

2 に答える 2

5

試してみてください:

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

于 2016-09-19T07:31:15.400 に答える