基於Nacos實現SpringCloud微服務配置的中心化、外部化和動態化參考實例

引言

本文演示如何使用 Nacos Config Starter 完成 Spring Cloud 應用的配置管理。git

Nacos 是阿里巴巴開源的一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。github

實現nacos配置中心的價值

  • 動態配置服務能夠讓你以中心化外部化動態化的方式管理全部環境的應用配置和服務配置。
  • 動態配置消除了配置變動時從新部署應用和服務的須要,讓配置管理變得更加高效和敏捷。
  • 配置中心化管理讓實現無狀態服務變得更簡單,讓服務按需彈性擴展變得更容易。
  • Nacos 提供了一個簡潔易用的UI (控制檯樣例 Demo) 幫助你管理全部的服務和應用的配置。Nacos 還提供包括配置版本跟蹤、金絲雀發佈、一鍵回滾配置以及客戶端配置更新狀態跟蹤在內的一系列開箱即用的配置管理特性,幫助您更安全地在生產環境中管理配置變動和下降配置變動帶來的風險。

實現步驟

第一步 配置中心

  • 您須要先下載 Nacos 並啓動 Nacos server。
  • 在nacos配置中心新增一個配置,dataId爲:myclouds-nacos-config-example-dev.yml 配置內容以下:
bankcard:
  id: 532925
  name: xiongchun

myclouds-nacos-config

第二步 建立示例項目 myclouds-nacos-config-example

項目源碼和配置請訪問個人myclouds代碼倉庫spring

  • 啓動本項目,增長啓動參數: -Dspring.profiles.active=dev -Dserver.port=18000
  • 請求地址:http://127.0.0.1:18000/config/user 將輸出:卡號: 532925,姓名: xiongchun
  • 在nacos控制檯中將xiongchun修改成gosling,再訪問此url,輸出將同步發生變化。

配置中心使用過程要注意的幾個點

  • dataId的完整格式:${prefix}-${spring.profile.active}.${file-extension}安全

    • prefix 默認爲 spring.application.name 的值,也能夠經過配置項 spring.cloud.nacos.config.prefix來配置。
    • spring.profile.active 即爲當前環境對應的 profile,詳情能夠參考 Spring Boot文檔。
      • 規則1:當 spring.profile.active 爲空時,dataId 的拼接格式變成 ${prefix}.${file-extension}
      • 規則2:若是啓動環境是test,單配置中心沒有建立和test對應的dataId,則視同profile爲空,仍是會去找${prefix}.${file-extension}格式的配置文件。
    • file-exetension 爲配置內容的數據格式,能夠經過配置項 spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 和 yaml 類型。
  • 經過 Spring Cloud 原生註解 @RefreshScope 實現配置自動更新。app

  • 若是是程序中經過@value註解獲取配置項的值,則應該給缺省值。@Value("${bankcard.name:}")不然,若是配置中沒有這個配置項,則應用啓動失敗。url

寫在最後

完整實例代碼請訪問個人myclouds代碼倉庫https://gitee.com/osworks/myclouds3d

相關文章
相關標籤/搜索