首页 > 解决方案 > Spring cloud config git refreshRate 行为

问题描述

我正在尝试设置 Spring Cloud Config Server,并希望根据对支持 git 存储库的更改启用属性的自动刷新。

下面是服务器的 bootstrap.yml。

server:
  port: 8080

spring:
  application:
    name: my-configserver
  cloud:
    config:
      server:
        bootstrap: true
        git:
          uri: /Users/anoop/Documents/centralconfig
          refreshRate: 15
          searchPaths:  {application}/properties
    bus:
      enabled: true

根据文档spring.cloud.config.server.git.refreshRate确定

配置服务器多久从你的 Git 后端获取更新的配置数据

我看到配置更改时配置客户端没有收到更改通知。我没有为此配置一个 git 钩子,并希望只设置属性就可以完成这项工作。

阿努普

标签: spring-cloud-config

解决方案


由于您已经配置了refreshRate属性,每当配置客户端(其他应用程序)调用配置服务器来获取属性(这发生在应用程序启动或应用程序调用/actuator/refresh端点时),他们将获得 15 秒(您的刷新率)旧的属性。

默认情况下,该refreshRate属性设置为 0,这意味着任何时候客户端应用程序请求属性配置服务器都会从 GIT 获取最新的。

我认为没有任何属性可以让您的客户端应用程序在 GIT 中发生更改/提交时得到通知。这是您的应用程序需要通过调用actuator/refresh端点来完成的事情。这可以使用一些调度程序以编程方式完成(尽管我不建议这样做)。


推荐阅读