配置中心需求
- 可視化的配置維護。
- 配置信息可持久化存儲。
- 配置變化可以及時感知。
- 高可用的集群方式四敞。
- 信息安全。
Nacos使用配置
安裝Nacos
官網按照教程下載啟動Nacos: https://nacos.io/zh-cn/docs/quick-start.html
項目引入jar包
Spring Cloud 項目為例:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
引入配置
一定要使用 bootstrap.properties/yml 拔妥。
spring.application.name=spring-cloud-nacos
# Nacos幫助文檔: https://nacos.io/zh-cn/docs/concepts.html
# Nacos認證信息 默認配置
#spring.cloud.nacos.config.username=nacos
#spring.cloud.nacos.config.password=nacos
#spring.cloud.nacos.config.contextPath=/nacos
# 設置配置中心服務端地址
spring.cloud.nacos.config.server-addr=localhost:8848
# Nacos 配置中心的namespace忿危。需要注意,如果使用 public 的 namcespace 毒嫡,請不要填寫這個值癌蚁,直接留空即可
# spring.cloud.nacos.config.namespace=
配置Nacos
新建 Data Id 名稱為 spring.application.name 值幻梯,這里類型為 properties兜畸。
Data Id 可以不加后綴,也可以添加后綴碘梢。
注意 spring cloud 默認加載 :
- dataId [spring.application.name] & group[DEFAULT_GROUP]
- dataId [spring.application.name.properties] & group[DEFAULT_GROUP]
比如:dataId : spring-cloud-nacos & group : DEFAULT_GROUP
dataId : spring-cloud-nacos.properties & group : DEFAULT_GROUP
如果為其他 需要在 啟動配置文件中指定 后綴 和 group 咬摇。
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.group=Test
獲取配置值
通過@Value 注解 將值引入。通過 @RefreshScope 注解完成對配置修改的動態(tài)更新煞躬。
@RefreshScope
@Component
@Data
public class NacosConfigConfiguration {
@Value("${switchTest: test}")
private String switchTest;
}
簡單使用
直接將配置類引入肛鹏。通過get屬性值方式獲取配置值。
@RestController
public class NacosConfigController {
@Resource
private NacosConfigConfiguration nacosConfigConfiguration;
@GetMapping("/testConfig")
public String testConfig(){
return nacosConfigConfiguration.getSwitchTest();
}
}
Nacos 擴展配置
多環(huán)境配置
正常情況我們都需要多環(huán)境的配置方式恩沛。Nacos對于多環(huán)境提供了靈活的配置方式在扰。
active方式
Nacos 配置
啟動配置文件通過 spring.profiles.active 指定啟動環(huán)境,在Nacos上新建 Data Id 為 服務名稱+active環(huán)境+文件后綴 的配置 如: spring-cloud-nacos-test.yaml
這里注意兩點:
- 主配置文件為 spring-cloud-nacos.yaml雷客。spring-cloud-nacos-test.yaml 會繼承 主配置文件配置芒珠。
- spring-cloud-nacos-test.yaml 優(yōu)先級要大于主配置文件,也就是說相同配置會以 -test 配置文件為主搅裙。(子類可以繼承父類方法皱卓,也可以重寫父類方法)
項目配置
spring:
application:
name: spring-cloud-nacos
cloud:
nacos:
config:
server-addr: localhost:8848
file-extension: yaml
profiles:
active: test
優(yōu)缺點
優(yōu)點:不需要在項目中創(chuàng)建 bootstrapt-test.yaml 直接在 bootstrapt.yaml 中配置active 環(huán)境后,在Nacos上創(chuàng)建文件即可部逮,且方便繼承 主配置娜汁。
缺點:所有環(huán)境配置放在 同一命名空間,同一小組內兄朋,不利于權限控制掐禁。所有用戶都可直接操作線上環(huán)境。沒有做到環(huán)境的隔離,誤操作風險較大傅事。
namespace 方式
nacos 配置
在命名空間新建 NameSpace 區(qū)分 Test / Dev / Prod 環(huán)境
項目配置
bootstrap.yml
# 應用名稱
spring:
application:
name: spring-cloud-nacos
cloud:
nacos:
config:
server-addr: localhost:8848
file-extension: yaml
profiles:
active: test
bootstrap-test.yml
spring:
cloud:
nacos:
config:
namespace: prod