標籤:

微服務落地第三課-Spring Cloud Config Client搭建

上一章節,我們一起搭建了Spring Cloud Config Server,並且可以通過瀏覽器訪問到我們配置中心的配置信息。在本章節,我們將搭建Spring Cloud Config Client,在實戰項目中讀取配置信息,無需重啟應用實時更新配置信息,以及看看如何通過其他組件來實現客戶端配置信息的推送。

注意:若要參考本例,你可能需要用到如下開發工具或環境,Intellij idea2017.3,maven,jdk1.7

1.打開idea,File->New Project->Spring Initializr,選擇依賴,需要搭建config server的必備依賴有web,和Config Client。但是由於本例中需要用到實時更新,我們還需要額外導入Ops下的Actuator。

Actuator是Spring Boot提供的對應用系統的自省和監控的集成功能,可以對應用系統進行配置查看、相關功能統計等

2.配置 application.properties

這部分屬於springboot web項目的常規配置,僅需如下兩行即可

server.port=8881 #指定web服務埠號

management.security.enabled=false #不需要通過security驗證,因本例需要通過post方式調用client相關方法實現配置文件即時更新。默認需要具有ACTUATOR 角色的人才能有許可權調用該方法。

3.配置 bootstrap.properties

spring.application.name=sms #子系統的名

spring.profiles.active=pro #子系統使用的配置文件環境,開發,測試或者生產

spring.config.location
=127.0.0.1:8888 #config server的地址

4.我們在需要讀取配置信息的地方通過如下方式注入即可獲取到

import org.springframework.beans.factory.annotation.Value;

@Value("${redis.username}") private String name;

只需這簡單四步,我們就可以讓所有的子系統全部使用配置中心的配置信息。避免各個子系統配置互相冗餘,各自為政。統一規範的管理會避免掉進很多不必要的坑。


基本的使用方式就如上即可,但是我們使用Spring Cloud Config 的目的只是讓配置文件統一管理嗎?顯然不是,我們更看重的是它的即使無需重啟刷新配置信息

1.需要實現無重啟刷新配置信息,就得藉助我們剛剛添加的Spring Boot Actuator中的功能。在我們需要刷新的實體類上添加註解@RefreshScope。

2.然後使用POST 方式提交 127.0.0.1:8881/refresh 即可重新綁定我們需要的實體。

@RefreshScope的工作原理Spring創建一個代理Proxy,Proxy中包含注入的依賴及調用目標bean的方法,當更新Refresh時,新Proxy就會指向改變的bean。

3.最後即可直接測試修改後的值有沒有改變。


推薦閱讀:

「演講復盤」技術沙龍(滬江網4月) - 我所遇見的微服務演進這十年

TAG:微服務架構 |