Как установить ServerListRefreshInterval в ленточный балансировщик нагрузки?

Я использую Spring, Eureka и Ribbon. Я хочу изменить интервал обновления для ленты. Читая документацию, я обнаружил, что должен установить следующее свойство:

my-service.ribbon.ServerListRefreshInterval=99999

Однако это не помогает, потому что, когда я создаю балансировщик нагрузки, Spring использует следующий конструктор

   public DynamicServerListLoadBalancer(IClientConfig clientConfig, IRule rule, IPing ping, 
        ServerList<T> serverList, ServerListFilter<T> filter) {
    this(
            clientConfig,
            rule,
            ping,
            serverList,
            filter,
            new PollingServerListUpdater()
    );

И этот конструктор не использует мою собственность.

1 ответ

Решение

Я посмотрел на эту тему: Как переопределить значение по умолчанию ленты.serverListRefreshInterval в Spring Cloud Ribbon?

Проблема связана с этой ошибкой: tape.ServerListRefreshInterval игнорируется # 1304.

Ошибка была исправлена ​​в Spring-cloud-netflix 1.3.0.RC1 в марте 2017 года.

Вы используете Spring Cloud Camden.SR7, который использует Spring Cloud Netflix 1.2.7.RELEASE где ошибка еще не была исправлена.

Либо принудительно используйте spring-cloud-netflix 1.3.0 или более поздней версии, либо перейдите на версию Spring Cloud с такой зависимостью, например Spring Cloud Edgware.SR2 ( репозиторий Maven), которая использует Spring Cloud Netflix 1.4.3.RELEASE

Другие вопросы по тегам