一顽聂、Nacos配置中心介紹
Nacos配置中心等同于Srping Cloud Config+Bus,并且配置信息基于自己搭建的項目,并且可以保存到Mysql數(shù)據(jù)庫中
二驶睦、Nacos配置中心使用
2.1杯缺,Nacos管理首頁->配置管理->配置列表
這里就是配置中心管理列表頁面蒸播,所有的配置數(shù)據(jù)都在這里展示
2.2,Nacos數(shù)據(jù)中心數(shù)據(jù)模型
在真正使用Nacos數(shù)據(jù)中心前需要了解Nacos的數(shù)據(jù)模型:
命名 | 名稱 | 使用方式 |
---|---|---|
Namespace | 不同環(huán)境進行隔離 | dev開發(fā)環(huán)境萍肆,fat測試環(huán)境袍榆,pro生產(chǎn)環(huán)境 |
Group | 將若干個服務(wù)或者配置歸集為一組 | 一個項目一組,比如TC服務(wù)塘揣,TB服務(wù)包雀,管理后臺 |
Service | 對應(yīng)某一個微服務(wù) | TC服務(wù)拆分的微服務(wù) |
DataId | 一個DataId對應(yīng)一個配置文件,可以理解數(shù)據(jù)主鍵Id | 一個微服務(wù)對應(yīng)一個/多個配置文件DataId |
2.3亲铡,Nacos配置中心使用
-
命名空間創(chuàng)建dev,fat,pro分別對應(yīng)開發(fā)才写,測試葡兑,生產(chǎn)環(huán)境
-
在配置列表中選擇對應(yīng)的命名空間
-
創(chuàng)建配置文件并且分組
- 創(chuàng)建成功后就能在列表看到該條配置數(shù)據(jù)
2.4,獲取配置中心數(shù)據(jù)開發(fā)
在Nacos服務(wù)提供者章節(jié)的基礎(chǔ)上繼續(xù)開發(fā)獲取配置中心數(shù)據(jù)
- 開發(fā)前先了解dataId的完整格式
${prefix}-${spring.profile.active}.${file-extension}
名稱 | 介紹 |
---|---|
prefix | 默認為spring.application.name 的值赞草,也可以通過配置項spring.cloud.nacos.config.prefix來配置 |
spring.profile.active | 當前環(huán)境對應(yīng)的profile讹堤,當該字段為空時,dataId會變成${prefix}.${file-extension}厨疙,因為環(huán)境一般配置在Namespace洲守,所以這個建議空 |
file-exetension | 后綴,可以通過配置項spring.cloud.nacos.config.file-extension 來配置 |
- sca-parent項目pom.xml
<!-- Nacos配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- sca-service-8081項目applicaion.yml改成bootstrap.yml
如果直接使用application.yml配置沾凄,會無法從配置中心獲取配置參數(shù)
bootstrap.yml是由父Spring ApplicationContext加載岖沛,他會在application.yml加載前加載
bootstrap.yml一般是最早期配置文件,里面的參數(shù)一般是不會變動的
而變動的參數(shù)會通過application.yml進行米哦啊書
而nacos需要使用bootstrap.yml進行nacos相關(guān)的配置
server:
port: 8081 # 端口
spring:
application:
name: sca-service # 命名
# nacos配置
cloud:
nacos:
discovery:
# 集群中各節(jié)點信息都配置在這里(域名-VIP-綁定映射到各個實例的地址信息)
server-addr: 127.0.0.1:8848
# nacos配置中心獲取配置設(shè)置
config:
# nacos配置中心IP端口搭独,集群以婴削,隔開
server-addr: 127.0.0.1:8848
# 命名空間里面的命名空間ID
namespace: 0520da30-154c-42e2-94d1-524e42203aa4
# group分組名稱
group: DEFAULT_GROUP
# 后綴名,最終配置文件全稱sca-service.yaml
file-extension: yaml
# 配置文件命名規(guī)則
prefix: sca-service
- HelloController.java編寫一個類進行驗證
@RestController
@RequestMapping("/sca")
@RefreshScope //動態(tài)刷新配置信息
public class HelloController {
@Value("${server.port8081}")
private Integer port;
@GetMapping("/hello/{name}")
public String hello(@PathVariable String name){
return name + "你好牙肝,歡迎來到"+port+"的Spring Cloud Alibaba";
}
}