微服務落地第三課-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=http://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 方式提交 http://127.0.0.1:8881/refresh 即可重新綁定我們需要的實體。
@RefreshScope的工作原理Spring創建一個代理Proxy,Proxy中包含注入的依賴及調用目標bean的方法,當更新Refresh時,新Proxy就會指向改變的bean。
3.最後即可直接測試修改後的值有沒有改變。
推薦閱讀:
※「演講復盤」技術沙龍(滬江網4月) - 我所遇見的微服務演進這十年
TAG:微服務架構 |