SpringCloudAlibaba(三):使用Nacos作爲配置中心

之前提到了這次從php技術棧遷移到java技術棧要解決的一個問題就是集中化配置管理。

我們爲什麼會有配置中心的需求?

  1. 配置管理變更較爲方便
  2. 合理控制配置的權限內容

Nacos 控制檯增加配置文件

  1. 進入Nacos管理界面,在【配置管理】-【配置列表】功能頁面點擊右上角的 + 號。
  1. 進入 新建配置 頁面,填寫要新增的配置內容

「WARN」:Data ID的默認擴展名爲「properties」,如果需要使用yaml格式則需要指明是 「.yaml」3.  發佈配置 配置完成後點擊發布,即可在配置列表中看到剛纔新增的配置

創建Nacos Config客戶端

  1. 新建項目,由於使用SpringCloudAlibaba直接引用相關依賴
<dependency>    <groupId>com.alibaba.cloud</groupId>    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency>
  1. 創建應用主類並且實現一個HTTP接口
  • 啓動類
@SpringBootApplicationpublic class NacosConfigApplication {    public static void main(String[] args) {        SpringApplication.run(NacosConfigApplication.class,args);    }}
  • Controller
@RefreshScope@RestController@RequestMapping("/config")public class ConfigController {    @Value("${useLocalCache:false}")    private boolean useLocalCache;
@Value("${name}") private String name;
@RequestMapping("/get") public boolean get() { return useLocalCache; }
@RequestMapping("/name") public String name(){ return name; }}

「@RefreshScope」在這裏的作用就是讓配置內容支持動態刷新,也就是當應用運行中,我們在Nacos控制檯修改了配置之後這裏也會動態的更新。

  1. 項目bootstrap.properties配置服務名稱與Nacos地址
# 配置中心urlspring.cloud.nacos.config.server-addr=localhost:8848# 配置中心展現的服務名稱spring.application.name=nacos-config-example#配置文件類型[TEXT,JSON,XML,YAML,HTML,Properties]spring.cloud.nacos.config.file-extension=properties# 配置分組,當前的業務基本選擇爲某些的GROUP,可以基於業務來劃分不同的分組.spring.cloud.nacos.config.group=DEFAULT_GROUP# 默認選擇的配置環境,當前把環境劃分爲4套, dev[開發環境],test[測試環境],pre[預發環境],prod[生產環境]spring.profiles.active=dev

「WARN」 多環境配置中需要指定Nacos namespace的id,而不是指定namespace的名稱

  1. 啓動應用程序並進行驗證
  • 啓動應用
  • 發送請求測試配置是否生效
  • 修改配置進行進行動態刷新
    進入Nacos控制檯修改配置信息,name修改爲bigData 再次進行測試
    再次發送請求
    至此使用Nacos作爲配置中心已經完全搞定,並且也實現了多環境的配置。多環境有幾種方式實現,但是我依然習慣使用namespace的方式來實現。
    「源碼:」
https://github.com/CainGao/SpringCloudAlibabaExample


本文分享自微信公衆號 - 指尖數蟲(zhijianshuchong)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章