Ribbon 是否缓存 Eureka 条目?

Does Ribbon cache Eureka entries?

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

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

}

我见过 spring 像这样的引导配置条目:

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

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

例如我看到 RestTemplate 配置如下:

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

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

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

eureka:
  client:
    fetchRegistry: true