Nacos配置中心
Nacos除了可以做注冊中心,🔗Nacos下載和注冊中心教程,同樣可以做配置管理來使用。
一、統一配置管理
當微服務部署的實例越來越多,達到數十、數百時,逐個修改微服務配置就顯得十分的不方便,而且很容易出錯。我們需要一種統一配置管理方案,可以集中管理所有實例的配置。
nacos一方面可以將配置集中管理,另一方可以在配置變更時,及時通知微服務,實現配置的熱更新(更新非初始化應用配置可以不重啟項目)
二、Nacos配置中心入門
Nacos中添加配置
在Nacos服務端創建一個配置,如下所示:
1、
2、
測試要拉去的配置
pattern:dateformat: yyyy-MM-dd HH:mm:ss
微服務集成配置中心
1、在要使用該配置的模塊添加Nacos配置中心的依賴
<!-- nacos作為配置中心時所對應的依賴 -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2、在使用該配置的模塊,配置文件中配置 Nacos Config 地址并引入服務配置
# 配置數據庫的連接信息
spring:cloud:nacos:config:server-addr: 你的ip:端口config:import:- nacos:spzx-cloud-order-dev.yml # 冒號分割不需要加空格 , 可以引入多個配置,寫了這句話就相當于把
#pattern:#dateformat: yyyy-MM-dd HH:mm:ss 拉去到了配置文件中
3 讀取自定義配置
@Value (讀取的配置文件只在一個類中使用時或者單個屬性,常用@Value)
@ConfigurationProperties( 讀取的配置文件需要在多個類中使用時,或者批量的屬性,可以隨時注入使用)
定義一個實體類,并在啟動類開啟
@ConfigurationProperties(prefix = "pattern")
//使用ConfigurationProperties需要在啟動類中開啟
//@EnableConfigurationProperties(value = {PatternProperties.class})
@Data //提供get方法
public class PatternProperties {private String dateformat;
}
- 使用
三、配置熱更新
我們最終的目的,是修改Nacos中的配置后,微服務中無需重啟即可讓配置生效,也就是配置熱更新。實現配置的熱更新有兩種方式:
方式一:在@Value注入的變量所在類上添加注解**@RefreshScope**
方式二:通過實體類,配合@ConfigurationProperties注解讀取配置信息,自動支持熱更新 .把@RefreshScope加在配置類上
四、配置優先級
如果在application.yml文件中和Nacos配置中心中都定義了相同的配置內容,那么哪一個配置的優先級較高呢?
優先級順序:Nacos配置中心的配置> application.yml