[Spring Cloud Tutorial翻譯系列二]Spring Cloud Config Server與git整合

陳續淵發表於2019-04-04

現如今我們經常在討論服務端開發(主要是API服務)的時候談及“微服務”。微服務設計方法逐漸成為了API開發的新業界標準。幾乎所有的組織都在推廣它。

在這篇教程當中,我們將探討並且完成一個叫做配置服務(Config Server)的微服務特性。所有微服務的可配置引數都在配置服務中寫入和維護。它更像是將屬性/資原始檔從專案的程式碼中統一抽離到一個外部服務,這樣的話如果某個屬性發生了改變,那麼使用它的服務並不需要重新部署。在不重新部署微服務的情況下,所有的屬性改變將可以體現出來。

為什麼要使用Spring cloud配置伺服器

配置伺服器的想法來自於12-factor app宣言。這份宣言與開發現代原生雲應用的最佳實踐指導相關。它建議將屬性/資源儲存在伺服器的環境當中。在這個環境裡,這些資源會在服務執行的時候發生變化——不同的配置通常在每個環境當中有所不同。

舉個例子,如果一個服務依賴與另一個服務(由於特定業務場景被呼叫),並且被依賴的服務的URL發生了改變,那麼我們必須用新的地址構建和部署我們的服務。但是如果我們現在運用了12 factor app方法,並且從一個執行在不同程式裡的外部服務讀取配置,我們就只需要重新整理配置服務了。

所以,這個想法非常清晰以及有效。現在讓我們來看看如何建立配置伺服器。

例子中使用到的技術棧

我們將使用基於spring-boot的spring-cloud API,它非常易於使用和流行。在spring framework的命名中,它被稱作Config Server。同時我們也會通過git來託管屬性檔案。

所以我們最終用於這個demo的技術棧是:

  1. Java 1.8E
  2. clipse IDE
  3. Spring cloud
  4. Spring boot
  5. Spring Rest
  6. GitHub as resource repository
  7. Maven
  8. REST client

我們首先將開發2個基於spring boot的微服務。

  1. 一個是提供執行配置的配置伺服器
  2. 一個是使用配置伺服器暴露的配置的配置客戶端服務

配置伺服器——伺服器端配置

首先我們通過給定的步驟構建配置伺服器部分。

  1. 生成專案結構

    spring boot初始化程式門戶開始,這是建立任何基於Spring Boot的應用的一個特別好的起點。在這裡我們只會選用Config Server starter pom。通過使用此配置,只要我們生成專案,就可以下載一個zip檔案,然後解壓縮後匯入eclipse。

    Generate Server Project with Config Server Starter POM

  2. 將專案匯入Eclipse

    一旦你從spring初始化器門戶獲得了zip檔案,我們需要將它解壓縮到我們選擇的目錄並將其作為maven專案匯入eclipse

  3. 在Eclipse中構建

    下一步是選擇你喜歡的方式,從命令提示符或eclipse執行mvn clean install。

  4. 新增Config Server註解

    現在開啟spring已經提供的Spring Application類,並在類之前新增@EnableConfigServer註解並再次構建專案。在使用這個註解之後,這個artifact將會表現得像一個spring配置伺服器。

相關文章