Ribbon会缓存Eureka条目吗?

时间:2017-09-05 06:08:29

标签: java spring-mvc spring-boot spring-cloud netflix-eureka

Ribbon是否缓存Eureka条目(为了避免对每个请求进行服务查找),如果是,那么如何在Spring Cloud中配置?例如,像这样的Feign客户端如何为条目/刷新率/等配置生存时间:

@Bean
BookmarkClient bookmarkClient() {
  return loadBalance(BookmarkClient.class, "http://bookmark-service");

}

我见过这样的spring boot配置条目:

eureka.instance.leaseRenewalIntervalInSeconds=1
eureka.instance.leaseExpirationDurationInSeconds=2

所以在这种情况下,似乎缓存会每秒检查Eureka的更改,并允许每个条目缓存条目生存2秒IIUC?此外,就spring-boot / spring cloud和Netflix REST客户端而言,访问客户端的配置是否存在差异(Feign / RestTemplate和各种注释组合)?

例如,我看到RestTemplate配置如下:

   @Bean
   @LoadBalanced
   public RestTemplate restTemplate() {
    return new RestTemplate();
   }

Feign客户端是否会使用上述示例使用的相同缓存配置设置?换句话说,所有Spring云支持的微服务休息客户端的配置是否通用?

1 个答案:

答案 0 :(得分:1)

您可以对Eureka客户端进行以下更改,以在启动期间获取注册表并在本地缓存它。初始获取后,Eureka客户端将获取delta:

eureka:
  client:
    fetchRegistry: true