SpringCloud Nacos作為配置中心超詳細講解
前言
在單體架構的時候我們可以將配置寫在配置文件中,但有?個缺點就是每次修改配置都需要重啟服務才能生效。
當應用程序實例比較少的時候還可以維護。如果轉向微服務架構有成百上千個實例,每修改?次配置要將全部實例重啟,不僅增加了系統(tǒng)的不穩(wěn)定性,也提高了維護的成本。
那么如何能夠做到服務不重啟就可以修改配置?所有就產(chǎn)生了四個基礎訴求:
- 需要支持動態(tài)修改配置
- 需要動態(tài)變更有多實時
- 變更快了之后如何管控控制變更風險,如灰度、回滾等
- 敏感配置如何做安全配置
Nacos配置模型
- Nacos 提供可視化的控制臺,可以對配置進行發(fā)布、更新、刪除、灰度、版本管理等功能。
- SDK 可以提供發(fā)布配置、更新配置、監(jiān)聽配置等功能。
- SDK 通過 GRPC 長連接監(jiān)聽配置變更,Server 端對比 Client 端配置的MD5 和本地MD5是否相等,不相等推送配置變更。
- SDK 會保存配置的快照,當服務端出現(xiàn)問題的時候從本地獲取。
配置介紹
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
- prefix 默認為 spring.application.name 的值,也可以通過配置項 spring.cloud.nacos.config.prefix來配置。
- spring.profiles.active 即為當前環(huán)境對應的 profile,詳情可以參考 Spring Boot文檔。 注意:當 spring.profiles.active 為空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成
${prefix}.${file-extension}
- file-exetension 為配置內(nèi)容的數(shù)據(jù)格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。支持 properties 、 yaml 和 yml 類型。
實際演練
在springcloud項目中要使用Nacos配置中心,就必須將相關信息配置到bootstrap(.properties/.yaml)配置文件中,所以要讓springcloud識別bootstrap文件就要導入相關依賴:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
然后在bootstrap文件中進行配置:
spring:
cloud:
nacos:
discovery: #nacos的地址,不寫默認就是127.0.0.1:88848
server-addr: 192.168.11.233:18848
username: nacos
password: nacos
config:
server-addr: 192.168.11.233:18848
file-extension: yaml #重點:文件格式就是在nacos中創(chuàng)建的配置文件是什么格式,要統(tǒng)一
namespace: dev-namespace # 命名空間的ID,我這里是自定義的,也可以自動生成,后面有講解
group: DEFAULT_GROUP #默認組別,用于區(qū)分同一個namespace下的同名配置文件
prefix: consumer01 #文件前綴,不寫默認是 spring.application.name
profiles:
active: dev
由上面的配置可以得到文件名為:consumer01-dev.yaml
,到Nacos中創(chuàng)建對應的配置文件:
首先創(chuàng)建命名空間:
因為我之前已經(jīng)創(chuàng)建過dev了,現(xiàn)在以test為例:
然后到dev下創(chuàng)建配置文件:
這兩個地方都可以創(chuàng)建:
寫入自己的配置即可:
OK,然后就可以將原項目中的application.yaml刪除或注釋掉,重啟項目,能夠正常運行!
到此這篇關于SpringCloud Nacos作為配置中心超詳細講解的文章就介紹到這了,更多相關SpringCloud Nacos配置中心內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于springboot搭建的web系統(tǒng)架構的方法步驟
這篇文章主要介紹了基于springboot搭建的web系統(tǒng)架構的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04使用Java實現(xiàn)類似Comet風格的web app
這篇文章主要介紹了使用Java實現(xiàn)類似Comet風格的web app的方法,包括客戶端的響應和XML解析等功能,需要的朋友可以參考下2015-11-11從try-with-resources到ThreadLocal,優(yōu)化你的代碼編寫方式
這篇文章主要為大家介紹了從try-with-resources到ThreadLocal,優(yōu)化代碼的編寫方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04Java class文件格式之屬性_動力節(jié)點Java學院整理
在本文中, 主要講解了class文件中的一些屬性。 這些屬性可以出現(xiàn)在class文件中的對個地方, 用來描述一些其他信息2017-06-06POI XSSFSheet shiftRows bug問題解決
這篇文章主要介紹了POI XSSFSheet shiftRows bug問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07