分布式微服務--Nacos作為配置中心(一)

1.Nacos配置

遠程配置中心注意總結:

?????

  • 本地配置文件必須使用 bootstrap.ymlbootstrap.properties

    • 遠程配置的加載優先于 application.yml,因此必須寫在 bootstrap 配置文件中。

  • 本地配置文件中 file-extension 的取值僅支持兩種:propertiesyml

    • 遠程配置文件格式必須與此保持一致。(如果nacos客戶端配置的是yaml那么使用yml)

    • spring:
      cloud:
      nacos:
      config:
      file-extension: yml ? ? ? ? 支持
      file-extension: properties ? 支持
      file-extension: yaml ? ? ?? 不支持(會找不到配置)

  • 本地需要指定遠程配置文件的名稱,主要有兩種方式:

    • 3.1 直接指定 name 明確指定配置中心中對應的配置文件名稱。

    • 3.2 使用 prefix 通過本地項目名稱作為前綴,要求本地項目名必須與遠程配置中心的 dataId 保持一致。

  • 遠程配置文件的命名規范

    • dataId 的名稱和配置文件格式必須匹配,確保配置文件類型(如 .yaml.properties)與 file-extension 保持一致。

  • 本地指定遠程配置文件名稱時,應只寫 dataId 中“點號(.)之前”的部分

    • 例如,遠程配置文件名為 application-dev.yaml,則本地只寫 application-dev

2.多環境下的Nacos配置

2.1Data Id(必須用-不能用_)

2.2.分組

2.3.Namespace

場景namespacedata-idspring.profiles.active
spring.profiles.active 區分環境通常用同一個 namespaceData ID 帶環境后綴,如order-dev.ymldevprod 等環境名稱,決定 Data ID
namespace 區分環境不同 namespace 分環境Data ID 可統一,如order-service.yml可不使用或和 namespace 配合使用

3.@RefreshScope如何實現的動態更新

4.spring.profiles.active

很多人在實際用 Nacos 時也遇到這個煩惱:

“每次想切換環境配置(如 dev、test、prod),都要改 profiles.active,重新啟動才生效,是不是太麻煩?”


? 你說的現象的確是默認行為:

spring:profiles:active: dev
  • Spring Boot 會在啟動時加載對應環境的配置,比如 nacos-config-demo-dev.yaml

  • 但這個是 啟動參數級別的配置一旦啟動就固定了不能動態變更

  • 所以每次你想換環境(比如 dev → prod),都得改文件 + 重啟項目


🎯 那有沒有辦法 不用改文件、也不用重啟就切換環境配置

? 有幾種常用解決方案:


? 方式一:通過啟動參數動態傳入

不修改 application.yml,而是在啟動命令中傳遞:

java -jar your-app.jar --spring.profiles.active=prod

或:

-Dspring.profiles.active=prod

這樣可以做到一個 jar 運行多個環境避免寫死在配置里


? 方式二:寫多個 bootstrap 文件并按 profile 分隔

你可以使用多個 profile 文件,如:

  • bootstrap-dev.yml

  • bootstrap-test.yml

  • bootstrap-prod.yml

然后啟動時仍通過命令行參數來激活:

--spring.profiles.active=dev

Spring Boot 會自動選擇對應的 bootstrap-dev.yml 來加載。


? 方式三:把配置環境交給 Nacos,而不是用 spring.profiles.active

如果你不想再用 profiles.active 控制環境,可以改為使用不同命名空間或 group 來區分環境:

spring:application:name: order-servicecloud:nacos:config:server-addr: 127.0.0.1:8848file-extension: ymlnamespace: dev-namespace-id

這樣你只要切換 namespace,Nacos 就會拉取對應環境的配置,你可以在 Nacos 管理端切環境,不再靠啟動參數


🧾 總結幾種選擇:

方法是否需要重啟說明
修改 profiles.active? 需要重啟原始方式
啟動命令動態傳參? 不需改配置文件推薦用于部署
多個 bootstrap-xxx.yml 文件? 可維護性強適合分環境構建
namespace 切換環境? 高級方式推薦在多環境集群中使用


? 推薦做法(實戰中用得最多):

🚀 使用 namespace 切換環境 + 啟動參數設置環境名,不再寫死在配置文件里。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94369.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94369.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94369.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux安裝MySQL及鏈接第三方工具詳細教程,帶圖帶錯誤分析

本教程所有代碼均為root用戶權限下操作,如果不是root用戶,在代碼前加上(sudo )即可 一、安裝MySQL服務 準備工作: 有時,系統無法解析 部分域名,導致無法獲取鏡像列表,從而無法安裝…

WPS2024 軟件下載及安裝教程!

軟件介紹 WPS Office是一套辦公軟件套裝,包含WPS文字、WPS表格、WPS演示三大功能模塊,可以滿足常用文字處理、表格編輯和演示制作等多種辦公需求,以其強大的功能和用戶友好的界面贏得了眾多用戶的青睞。 軟件:??????WPS Of…

ESD監控系統確保工廠生產設備的靜電安全

隨著電子工業的飛速發展,電子產品的精密程度不斷提高,對生產環境的要求也日益嚴格。在許多電子制造工廠中,安裝和維護有效的靜電防護措施已成為保障生產安全和產品品質的關鍵。ESD監控系統作為靜電管理的核心工具,為確保工廠設備和…

基于react的YAPI實戰指南

基于react的YAPI 示例新增項目擴展遇到的問題&#xff0c;更改頁面內容沒有生效可能遇到的問題新增項目擴展 支持設置項目權限【公開】 <RadioGroup><Radio value"private" className"radio"><Icon type"lock" />私有<br …

docker鏡像源配置教程,以及解決安裝好docker配置鏡像源后,出現報錯。Job for docker.service failed

Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details.解決后效果&#xff1a;1、進入/etc/docker目錄cd /etc/docker2、創建daemon.json文件并…

安卓264和265編碼器回調編碼數據寫入文件的方法

一、寫入文件 1、變量定義 private FileOutputStream m265FileOutputStream null; private File m265File null; private static final String HEVC_265_FILE_NAME "output.265"; // 或 .265 private static final String AVC_264_FILE_NAME "output.264&qu…

【基礎完全搜索】USACO Bronze 2019 January - 猜動物Guess the Animal

題目描述 當奶牛貝茜和她的朋友艾爾西玩膩了常見的貝殼游戲后&#xff0c;她們喜歡玩另一個經典游戲"猜動物"。 游戲開始時&#xff0c;貝茜會在心中選定一種動物&#xff08;大多數時候她都會選奶牛&#xff0c;這讓游戲變得相當無聊&#xff0c;不過偶爾貝茜也會…

Spring IoC容器與Bean管理

代碼結構spring01/ ├── pom.xml ├── spring01.iml └── src/├── main/│ ├── java/│ │ └── com/│ │ └── demo/│ │ ├── bean/│ │ │ ├── Demo.java│ │ │ ├── Emp1.java│ │ …

【QT】概述

個人主頁&#xff1a;Guiat 歸屬專欄&#xff1a;QT 文章目錄1. Qt基礎入門1.1 什么是Qt1.2 Qt的歷史與發展1.3 Qt的核心特性2. Qt架構深度解析3. Qt開發環境搭建4. Qt應用開發實戰4.1 項目結構4.2 設計用戶界面4.3 實現功能邏輯4.4 數據持久化4.5 美化界面4.6 添加動畫效果5. …

直播帶貨系統源碼開發:山東布谷科技9年海內外電商直播研發技術深耕之路

在數字化浪潮的席卷下&#xff0c;電商行業歷經多次變革&#xff0c;直播帶貨作為其中的新興力量&#xff0c;已成為推動商品銷售與品牌傳播的關鍵引擎。山東布谷科技&#xff0c;憑借其在直播帶貨系統開發領域長達9年的深厚積淀&#xff0c;為電商直播帶貨系統源碼定制開發提供…

20250731解決RK3588的AIOT參考設計刷機之后可以啟動但是斷電進MASKROM模式

20250731解決RK3588的AIOT參考設計刷機之后可以啟動但是斷電進MASKROM模式 2025/7/31 20:42緣起&#xff1a;編譯RK3588原廠的Android14、buildroot(linux-6.1)的EVB7V11之后刷AIOT&#xff0c;可以啟動。 但是通過命令關機之后&#xff1a;按POWER按鍵無法啟動。 Android14 re…

永洪科技華西地區客戶交流活動成功舉辦!以AI之力錨定增長確定性

在全球經濟進入“慢周期”的背景下&#xff0c;企業對確定性增長工具的渴求達到前所未有的高度。近日&#xff0c;永洪科技在成都成功舉辦華西地區客戶交流會&#xff0c;以“擁抱AI邁進數據智能時代”為主題&#xff0c;匯聚金融、制造、能源、消費品等領域的百余家頭部企業代…

Electron 作品【AI聊天】桌面應用 —— 系列教程(含開源地址)

效果預覽 開源地址 https://gitee.com/sunshine39/electron-vue3-AIchat 系列教程 Electron Forge【實戰】桌面應用 —— AI聊天&#xff08;上&#xff09;Electron Forge【實戰】桌面應用 —— AI聊天&#xff08;中&#xff09;Electron Forge【實戰】桌面應用 —— AI聊天&…

JS--獲取事件的子元素與父元素

原文網址&#xff1a;JS--獲取事件的子元素與父元素-CSDN博客 簡介 本文介紹JS如何獲取事件的子元素與父元素。 情景描述 事件監聽寫在父元素上&#xff0c;我點擊子元素時觸發了事件&#xff0c;怎樣通過事件獲取子元素和這個父元素&#xff1f; 點擊子元素時&#xff0c…

PPT自動化 python-pptx - 11 : 備注頁 (Notes Slides)

在 PowerPoint 演示文稿的自動化處理中&#xff0c;備注頁的操作常常被忽略&#xff0c;但實際上它在演講者輔助、內容管理等場景中有著重要作用。本文將結合 python-pptx 庫&#xff0c;詳細講解 PowerPoint 備注頁的概念、與備注母版的關系&#xff0c;以及如何通過代碼實現備…

【Python小工具】圖片轉PDF

文章目錄0 前言1 主要功能的實現2 拖拽運行的實現3 檢查細節【未成功實現】4 總結0 前言 不知道大家是否遇到過這種情況&#xff0c;提交材料時需要將多個圖片材料整合到一個PDF中上傳。這個時候我們需要找一個工具&#xff0c;其作用為接收我們給它的若干張圖片&#xff0c;并…

零售消費行業研究系列報告

消費者洞察報告&#xff1a;即時零售美妝用戶消費行為躍遷 食品飲料行業深度&#xff1a;新消費研究之三&#xff1a;即時零售應需而生&#xff0c;酒類品牌或迎新機遇 2025年上半年連鎖零售門店發展藍皮書 商貿零售行業新消費細分賽道投資機會梳理&#xff1a;新消費勢能向…

Uniapp 驗證 HTTPS 協議

Uniapp 中 驗證 HTTPS協議的是示例代碼<template><view class"content"><view style"margin-top: 20px;"><text>sslVerify : {{text}}</text></view><view><button click"testSslVerify">sslVe…

可視化圖解算法57:字符串的排列

牛客網 面試筆試 TOP101 | LeetCode 3437. 全排列III 1. 題目 描述 輸入一個長度為 n 字符串&#xff0c;打印出該字符串中字符的所有排列&#xff0c;你可以以任意順序返回這個字符串數組。 例如輸入字符串ABC,則輸出由字符A,B,C所能排列出來的所有字符串ABC,ACB,BA…

Go語言常量

目錄 前言&#xff1a; 1、const聲明常量 2、一次聲明多個常量 前言&#xff1a; 這次來學習一下Go語言中的常量&#xff0c;在上一期中我學習了Go語言中的變量&#xff0c;如果有興趣可以看看我往期的文章&#xff0c;或者點擊Go語言聲明變量。 相對于變量&#xff0c;常量的…