文章目錄
- 前言
- 配置中心 - 數據隔離
- 示例
- 1.先創建命名空間
- 2.創建配置
- 3.克隆配置
- 4.動態切換環境
- 5.yml多文檔模式
- spring.profiles.active=dev
- spring.profiles.active=test
- 總結
前言
上一章簡單了解了Nacos配置中心的基本用法,這一章將開始Nacos配置中心的實戰案例。
配置中心 - 數據隔離
在Nacos配置中心里面一個命名空間對應多個組,一個組對應多個Data Id
使用Dataid區分多套配置
使用分組區分多種微服務
使用Namespace(名稱空間)區分多套環境
示例
1.先創建命名空間
創建好命名空間后,在配置列表中也可以看到命名空間
2.創建配置
點擊創建配置
order組通用配置common.properties,填寫好點擊發布
order.timeout=1min
order.auto-confirm=1h
order組數據庫配置database.properties
order.db-url=order_dev
3.克隆配置
創建完成后,勾選需要克隆的配置點擊克隆
選擇需要克隆的組
克隆完成后點擊test組修改需要的配置屬性值
4.動態切換環境
在nacos中配置完后進行項目配置
application.yml
#配置中心
server:port: 8080servlet:context-path: /
spring:application:name: qf-service-order# 配置nacos地址(告訴當前應用nacos在哪里)cloud:nacos:server-addr: 127.0.0.1:8848config:# 指定命名空間namespace: devconfig:# 從Nacos配置中心導入兩個配置文件,并屬于order分組import:- nacos:common.properties?group=order- nacos:database.properties?group=order
配置類
@Component
@ConfigurationProperties(prefix = "order") //配置批量綁定在nacos下,可以無需@RefreshScope就能實現自動刷新
@Data
public class OrderProperties {String timeout;String autoConfirm;String dbUrl;
}
Controller
@Autowired
OrderProperties orderProperties;@GetMapping("/config")
public String config(){return "order.timeout="+orderProperties.getTimeout()+"; " +"order.auto-confirm="+orderProperties.getAutoConfirm() +";"+"order.db-url="+orderProperties.getDbUrl();
}
啟動項目,先查看日志
可以看到加載配置文件成功,訪問接口查看加載值。
5.yml多文檔模式
場景:在開發環境需要3個配置文件,而在生成環境需要6個配置文件。此時就需要使用yml的多文檔模式
application.yml
# yml多文檔模式
server:port: 8080servlet:context-path: /
spring:profiles:active: devapplication:name: qf-service-order# 配置nacos地址(告訴當前應用nacos在哪里)cloud:nacos:server-addr: 127.0.0.1:8848config:import-check:# 禁用配置導入檢,這里主要讓程序忽略test分組中不存在的配置文件enabled: false# 動態指定命名空間,默認為devnamespace: ${spring.profiles.active:public}
---
spring:config:# 從Nacos配置中心導入兩個配置文件,并屬于order分組import:- nacos:common.properties?group=order- nacos:database.properties?group=orderactivate:on-profile: dev
---
spring:config:# 從Nacos配置中心導入兩個配置文件,并屬于order分組import:- nacos:common.properties?group=order- nacos:database.properties?group=order# 寫一個沒有在nacos中配置的配置文件- nacos:test.properties?group=orderactivate:on-profile: test
---
spring:config:# 從Nacos配置中心導入兩個配置文件,并屬于order分組import:- nacos:common.properties?group=order- nacos:database.properties?group=order- nacos:prod.properties?group=orderactivate:on-profile: prod
上面application.yml中dev、test、prod這里為了方便寫在一起了,正常是需要拆分為3個yml文件。
測試以上配置是否生效
spring.profiles.active=dev
啟動項目,查看日志
訪問接口返回數據
order.timeout=1min; order.auto-confirm=1h;order.db-url=order_dev
spring.profiles.active=test
啟動項目,查看日志
訪問接口返回數據
order.timeout=10min; order.auto-confirm=10h;order.db-url=order_test