您好,登錄后才能下訂單哦!
本篇內容主要講解“Spring Cloud Alibaba Nacos怎么實現多環境管理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Spring Cloud Alibaba Nacos怎么實現多環境管理”吧!
在Nacos中,本身有多個不同管理級別的概念,包括:Data ID
、Group
、Namespace
。只要利用好這些層級概念的關系,就可以根據自己的需要來實現多環境的管理。
下面,我就來介紹一下,可以使用的幾種實現方式:
Data ID
與profiles
實現Data ID
在Nacos中,我們可以理解為就是一個Spring Cloud應用的配置文件名。我們知道默認情況下Data ID
的名稱格式是這樣的:${spring.application.name}.properties
,即:以Spring Cloud應用命名的properties文件。
實際上,Data ID
的規則中,還包含了環境邏輯,這一點與Spring Cloud Config的設計類似。我們在應用啟動時,可以通過spring.profiles.active
來指定具體的環境名稱,此時客戶端就會把要獲取配置的Data ID
組織為:${spring.application.name}-${spring.profiles.active}.properties
。
實際上,更原始且最通用的匹配規則,是這樣的:
${spring.cloud.nacos.config.prefix}
-${spring.profile.active}
.${spring.cloud.nacos.config.file-extension}
。而上面的結果是因為${spring.cloud.nacos.config.prefix}
和${spring.cloud.nacos.config.file-extension}
都使用了默認值。
動手試一試
我們可以用上一篇中的列子為基礎,體驗一下這種區分環境的配置方式。
第一步:先在Nacos中,根據這個規則,創建兩個不同環境的配置內容。比如:
如上圖,我們為alibaba-nacos-config-client
應用,定義了DEV和TEST的兩個獨立的環境配置。我們可以在里面定義不同的內容值,以便后續驗證是否真實加載到了正確的配置。
第二步:在alibaba-nacos-config-client
應用的配置文件中,增加環境配置:spring.profiles.active=DEV
Group
實現Group
在Nacos中是用來對Data ID
做集合管理的重要概念。所以,如果我們把一個環境的配置視為一個集合,那么也就可以實現不同環境的配置管理。對于Group
的用法并沒有固定的規定,所以我們在實際使用的時候,需要根據我們的具體需求,可以是架構運維上對多環境的管理,也可以是業務上對不同模塊的參數管理。為了避免沖突,我們需要在架構設計之初,做好一定的規劃。這里,我們先來說說如何用Group
來實現多環境配置管理的具體實現方式。
動手試一試
第一步:先在Nacos中,通過區分Group
來創建兩個不同環境的配置內容。比如:
第二步:在配置列表的最上方,可以看到除了Public
之外,多了幾個剛才創建的Namepsace
。分別在DEV
和TEST
空間下為alibaba-nacos-config-client
應用創建配置內容:
第三步:在alibaba-nacos-config-client
應用的配置文件中,增加Namespace
的指定配置,比如:spring.cloud.nacos.config.namespace=83eed625-d166-4619-b923-93df2088883a
。
這里需要注意namespace的配置不是使用名稱,而是使用Namespace的ID。
第四步:啟動應用,通過訪問localhost:8001/test
接口,驗證一下返回內容是否正確。這種方式下,目前版本的日志并不會輸出與Namespace
相關的信息,所以還無法以此作為加載內容的判斷依據。
上面我們分別利用Nacos配置管理功能中的幾個不同緯度來實現多環境的配置管理。從結果上而言,不論用哪一種方式,都能夠勝任需求,但是哪一種最好呢?
第一種:通過Data ID
與profile
實現。
優點:這種方式與Spring Cloud Config的實現非常像,用過Spring Cloud Config的用戶,可以毫無違和感的過渡過來,由于命名規則類似,所以要從Spring Cloud Config中做遷移也非常簡單。
缺點:這種方式在項目與環境多的時候,配置內容就會顯得非常混亂。配置列表中會看到各種不同應用,不同環境的配置交織在一起,非常不利于管理。
建議:項目不多時使用,或者可以結合Group
對項目根據業務或者組織架構做一些拆分規劃。
第二種:通過Group
實現。
優點:通過Group
按環境講各個應用的配置隔離開。可以非常方便的利用Data ID
和Group
的搜索功能,分別從應用緯度和環境緯度來查看配置。
缺點:由于會占用Group
緯度,所以需要對Group
的使用做好規劃,畢竟與業務上的一些配置分組起沖突等問題。
建議:這種方式雖然結構上比上一種更好一些,但是依然可能會有一些混亂,主要是在Group
的管理上要做好規劃和控制。
第三種:通過Namespace
實現。
優點:官方建議的方式,通過Namespace
來區分不同的環境,釋放了Group
的自由度,這樣可以讓Group
的使用專注于做業務層面的分組管理。同時,Nacos控制頁面上對于Namespace
也做了分組展示,不需要搜索,就可以隔離開不同的環境配置,非常易用。
缺點:沒有啥缺點,可能就是多引入一個概念,需要用戶去理解吧。
建議:直接用這種方式長遠上來說會比較省心。雖然可能對小團隊而言,項目不多,第一第二方式也夠了,但是萬一后面做大了呢?
注意:不論用哪一種方式實現。對于指定環境的配置(
spring.profiles.active=DEV
、spring.cloud.nacos.config.group=DEV_GROUP
、spring.cloud.nacos.config.namespace=83eed625-d166-4619-b923-93df2088883a
),都不要配置在應用的bootstrap.properties
中。而是在發布腳本的啟動命令中,用-Dspring.profiles.active=DEV
的方式來動態指定,會更加靈活!。
到此,相信大家對“Spring Cloud Alibaba Nacos怎么實現多環境管理”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。