Spring Cloud Config Server

Spring Cloud Config Server 為外部配置(名稱-值對或等效 YAML 內容)提供基於 HTTP 資源的 API。伺服器可以透過使用 @EnableConfigServer 註解嵌入到 Spring Boot 應用中。因此,以下應用就是一個 Config Server

ConfigServer.java
@SpringBootApplication
@EnableConfigServer
public class ConfigServer {
  public static void main(String[] args) {
    SpringApplication.run(ConfigServer.class, args);
  }
}

和所有 Spring Boot 應用一樣,它預設執行在 8080 埠,但你可以透過多種方式將其切換到更常用的 8888 埠。最簡單的方式(同時也會設定預設配置倉庫)是使用 spring.config.name=configserver 啟動它(Config Server jar 中有一個 configserver.yml)。另一種方式是使用你自己的 application.properties 檔案,如下例所示

application.properties
server.port: 8888
spring.cloud.config.server.git.uri: file://${user.home}/config-repo

其中 ${user.home}/config-repo 是一個包含 YAML 和 properties 檔案的 git 倉庫。

在 Windows 上,如果檔案 URL 是帶有驅動器字首的絕對路徑(例如,/${user.home}/config-repo),則需要在檔案 URL 中多加一個 "/"。

以下列表展示了建立上例中 git 倉庫的方法

$ cd $HOME
$ mkdir config-repo
$ cd config-repo
$ git init .
$ echo info.foo: bar > application.properties
$ git add -A .
$ git commit -m "Add application.properties"
將本地檔案系統用於 git 倉庫僅用於測試目的。在生產環境中,你應該使用伺服器來託管配置倉庫。
如果只在配置倉庫中保留文字檔案,則首次克隆會非常快速高效。如果你儲存了二進位制檔案,特別是大型檔案,則首次請求配置時可能會遇到延遲,或者在伺服器中遇到記憶體不足錯誤。