2017-02-13 16 views
0

У меня есть проект, в котором я использую eureka, zuul и несколько микросервисов. Когда я запускаю новый микросервис, я должен подождать около 30 секунд, пока информация об обновлении zuul с сервера eureka и только после этого я могу отправить запрос через zuul на новый микросервис. Как заставить zuul получать данные реестра с сервера eureka?Как заставить zuul получать данные реестра с сервера eureka?

ответ

0

Как предложено here, нет способа принудительного извлечения реестра. Что вы можете сделать, это настроить конфигурацию таким образом извлечь реестр задачу планируется с более коротким интервалом (наименьший возможный интервал составляет один второй) в DiscoveryClient:

if (clientConfig.shouldFetchRegistry()) { 
// registry cache refresh timer 
int registryFetchIntervalSeconds = clientConfig.getRegistryFetchIntervalSeconds(); 
int expBackOffBound = clientConfig.getCacheRefreshExecutorExponentialBackOffBound(); 
scheduler.schedule(
     new TimedSupervisorTask(
       "cacheRefresh", 
       scheduler, 
       cacheRefreshExecutor, 
       registryFetchIntervalSeconds, 
       TimeUnit.SECONDS, 
       expBackOffBound, 
       new CacheRefreshThread() 
     ), 
     registryFetchIntervalSeconds, TimeUnit.SECONDS); 
} 

Вы можете получить, что с установкой соответствующего значения в «обновлении .interval "вашего клиента eureka (проанализировано в" registryFetchIntervalSeconds "выше).