黄色一级毛片网站_日韩在线国产_国产一级a在线观看_亚洲综合一区在线_99av视频_久久久7

當前位置:首頁 > IT課程問答

JAVA-Nacos多環境配置 時間:2023-04-23      來源:華清遠見

Nacos多環境配置

 在開發過程中,我們的項目會存在不同的運行環境,比如開發環境、測試環境、生產環境,而我們的項目在不同的環境中,有的配置可能會不一樣,比如數據源配置、日志文件配置、以及一些軟件運行過程中的基本配置,那每次我們將軟件部署到不同的環境時,都需要修改相應的配置文件,這樣來回修改,很容易出錯,而且浪費勞動力。

 Nacos除了可以做注冊中心,也可以做統一配置管理(配置中心),Nacos提供了一種統一配置管理方案,可以集中管理所有實例的配置。

 Nacos一方面可以將配置集中管理,另一方可以在配置變更時,及時通知微服務,實現配置的熱更新。

 

微服務要拉取Nacos中管理的配置,并且與本地的application.properties配置合并,才能完成項目啟動,否則項目啟動時就會報錯。

但是現在有個問題:未讀取application.properties,又如何得知nacos地址呢?

Spring引入了一種新的配置文件:bootstrap.properties文件,會在application.properties之前被讀取。

1.DataID方案

在springboot配置文件中指定spring.profile.active和Nacos配置中心的DataID來使不同環境下讀取不同的配置。

1.1 Nacos配置中心

在Nacos頁面中配置管理的配置列表創建配置:


 

 

DataID完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}

prefix 默認為 spring.application.name 的值,也可以通過配置項 spring.cloud.nacos.config.prefix來配置。因此prefix的名字需要與項目配置文件中spring.application.name 的值保持一致。

spring.profiles.active 即為當前環境對應的 profile,例如開發環境為dev,測試環境為test,生產環境為prod等。 因此這里的值需要與項目配置文件中的spring.profiles.active的值保持一致。注意:當 spring.profiles.active 為空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成 𝑝𝑟𝑒𝑓𝑖𝑥.{file-extension}。

file-exetension 為配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。支持 properties 、 yaml 和 yml 類型。

Group:分組,默認為DEFAULT_GROUP。

配置格式:目前,Springboot中能識別的配置格式只支持YAML和Properties兩個格式。

配置內容:根據自己需要配置的內容進行配置。

1.2 springboot配置

引入nacos-config依賴

<!-- 配置中心 --> <dependency>     <groupId>com.alibaba.cloud</groupId>     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>

創建bootstrap.properties

#注冊中心地址 spring.cloud.nacos.config.server-addr=localhost:8848 #與配置中心DataID的prefix一致 spring.cloud.nacos.config.prefix=productor ##與配置中心DataID的file-exetension一致 spring.cloud.nacos.config.file-extension=properties #與配置中心DataID的spring.profiles.active一致 spring.profiles.active=dev

啟動springboot項目,使用postman通過消費者遠程訪問接口,可以成功返回結果:

 

2.GROUP方案

我們知道Group為分組,默認為:DEFAULT_GROUP,現在我們在Nacos分出兩組,一組是“Dev開發組”,一組是“test測試組”

2.1 Nacos配置中心


2.2 springboot配置

微服務根據指定分組為dev或test進行切換。

 

啟動springboot項目,使用postman通過消費者遠程訪問接口,可以成功返回結果:

 

 

3.命名空間方案

我們創建命名空間, 通過切換對應的命名空間,然后再通過Group和DataID來進行切換,即可以按照Namespace+Group+DataId來切換使用不同的配置文件。

3.1 Nacos配置中心

3.1.1 創建命名空間

在Nacos頁面點擊命名空間,點擊創建命名空間

 

輸入要新建的空間名,點擊確定

點擊服務列表和配置列表,查看多出一個命名空間

3.1.2 配置中心新增配置文件

在test命名空間下新建配置

添加配置項:

在此,我們可以定義不同的GROUP及DataID,實現Namespace+Group+DataId來切換不同的配置文件。

3.2 springboot配置

在bootstrap.properties文件中配置namespace、group及DataID

#注冊中心地址 spring.cloud.nacos.config.server-addr=localhost:8848
#與配置中心DataID的prefix一致 spring.cloud.nacos.config.prefix=productor ##與配置中心DataID的file-exetension一致
spring.cloud.nacos.config.file-extension=properties spring.cloud.nacos.config.group=TEST_GROUP
#與配置中心DataID的spring.profiles.active一致
spring.profiles.active=test spring.cloud.nacos.config.namespace=5f8d56ea-111b-46e6-9edb-68bf92b9706b

啟動springboot項目,使用postman通過消費者遠程訪問接口,可以成功返回結果:

4.權限控制+命名空間方案

在命名空間基礎上,添加用戶權限控制,可根據不同用戶拉取該用戶所擁有的不同命名空間的配置。

4.1 權限控制

4.1.1 開啟權限控制

在nacos目錄的conf文件夾下編輯application.properties,設置:

nacos.core.auth.enabled=true

4.1.2 創建自定義用戶

在Nacos頁面上點擊用戶列表,在列表頁面點擊創建用戶

 

輸入用戶名和密碼,點擊確定完成用戶創建。

4.1.3 創建角色

在Nacos頁面上點擊角色管理,在管理頁面點擊綁定角色
 

角色名可以自定義輸入任意的名稱,用戶名輸入已經創建的用戶,點擊確定完成。

4.1.4 創建權限

在Nacos頁面上點擊權限管理,在管理頁面點擊添加權限

 

角色名:已經創建的角色

資源:已經創建的命名空間

動作:只讀(r)、只寫(w)、讀寫(rw)

點擊確定按鈕,完成權限添加。

在nacos頁面上退出賬號,以新創建的賬號登錄:

 

當訪問配置列表和服務列表的public時,提示權限認證失敗,此時配置列表中public命名空間的配置文件不能進行讀寫。

4.1.5 創建命名空間的配置文件

根據命名空間方案(文中第3中方案)創建配置文件,以test命名空間為例,創建test命名空間,在test命名空間下創建配置文件。

 

4.2 springboot配置

在bootstrap.properties中添加test的用戶名、密碼、命名空間配置

#注冊中心地址 spring.cloud.nacos.config.server-addr=localhost:8848
#與配置中心DataID的prefix一致 spring.cloud.nacos.config.prefix=productor #
#與配置中心DataID的file-exetension一致
spring.cloud.nacos.config.file-extension=properties spring.cloud.nacos.config.group=TEST_GROUP
#與配置中心DataID的spring.profiles.active一致
spring.profiles.active=test spring.cloud.nacos.config.namespace=5f8d56ea-111b-46e6-9edb-68bf92b9706b spring.cloud.nacos.username=test spring.cloud.nacos.password=123456

由于在Nacos中給test用戶分配了test命名空間,所以需要在application.properties中添加test的命名空間配置,在bootstrap.properties中已經配置nacos的用戶名和密碼,在這里可不配置,用戶名默認使用spring.cloud.nacos.username,密碼默認使用spring.cloud.nacos.password。

spring.cloud.nacos.discovery.server-addr=localhost:8848 spring.cloud.nacos.discovery.service=${spring.application.name} spring.cloud.nacos.discovery.namespace=${spring.cloud.nacos.config.namespace}

4.3 測試

啟動springboot項目,使用postman通過消費者遠程訪問接口,可以成功返回結果:

 

將bootstrap.properties中的group、active修改為dev,啟動springboot項目則報錯:

 

該現象說明當group、active修改為dev后,test用戶沒有權限訪問,不能拉取nacos中dev命名空間下的配置文件,導致springboot項目啟動獲取配置文件中的配置項時失敗。

 

上一篇:程序員面試時,那些必須注意的事情

下一篇:H5教學-瀑布流

戳我查看2024年嵌入式每月就業風云榜

點我了解華清遠見高校學霸學習秘籍

猜你關心企業是如何評價華清學員的

干貨分享
相關新聞
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: jizz18日本人在线播放 | 免费毛片一区二区三区久久久毛片 | 成年人免费小视频 | 国产精品理论一区 | 91人人草| 欧美极品日韩极品1 | 99成人精品 | av网在线看| 国产精品乱子伦XXXX | 国产精品免费一区二区三区 | 中文字幕在线观看一区 | 爱999精品视频 | 国产精品久久久久久久久久免费动 | 国产传媒18精品免费1区 | 国产精品Ⅴ无码大片在线看 | 人妻aⅴ中文字幕无码专区 97人妻碰碰碰久久久久禁片 | 一区二三国产 | 国产精品无码高清在线 | 国产一区 精品 | 久久久久久国产精品三区 | 亚洲深深色噜噜狠狠爱综合网 | 亚洲VA中文字幕无码毛片 | 国产一区在线视频播放 | 国产一区 精品 | av在线免费观看网站 | 毛片区 | 国产精品免费视频久久久 | 啊灬啊灬轻点第一次和外国人 | 7777日本精品一区二区三区 | 日韩在线视频在线 | 国产精品久久久久久久久久久久久久不卡 | 国产成人一区二区三区在线视频 | 国产一区二区大片在线观看 | 日本乱码一区二区三区芒果 | 色七七久久影院 | 国产精品一级毛片无码 | 91传媒91久久久 | 男啪女视频免费观看网站 | 成人毛片100免费观看 | 国产二级视频 | 91久久精品凹凸一区二区 |