Spring Cloud Alibaba快速入门-Nacos配置中心(下)
文章目录

前言
上一章简单了解了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: 8080
servlet:
context-path: /
spring:
application:
name: qf-service-order
# 配置nacos地址(告诉当前应用nacos在哪里)
cloud:
nacos:
server-addr: 127.0.0.1:8848
config:
# 指定命名空间
namespace: dev
config:
# 从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: 8080
servlet:
context-path: /
spring:
profiles:
active: dev
application:
name: qf-service-order
# 配置nacos地址(告诉当前应用nacos在哪里)
cloud:
nacos:
server-addr: 127.0.0.1:8848
config:
import-check:
# 禁用配置导入检,这里主要让程序忽略test分组中不存在的配置文件
enabled: false
# 动态指定命名空间,默认为dev
namespace: ${spring.profiles.active:public}
---
spring:
config:
# 从Nacos配置中心导入两个配置文件,并属于order分组
import:
- nacos:common.properties?group=order
- nacos:database.properties?group=order
activate:
on-profile: dev
---
spring:
config:
# 从Nacos配置中心导入两个配置文件,并属于order分组
import:
- nacos:common.properties?group=order
- nacos:database.properties?group=order
# 写一个没有在nacos中配置的配置文件
- nacos:test.properties?group=order
activate:
on-profile: test
---
spring:
config:
# 从Nacos配置中心导入两个配置文件,并属于order分组
import:
- nacos:common.properties?group=order
- nacos:database.properties?group=order
- nacos:prod.properties?group=order
activate:
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

总结

相关文章:
Spring Cloud Alibaba快速入门
Spring Cloud Alibaba快速入门-Nacos注册中心(上)
Spring Cloud Alibaba快速入门-Nacos注册中心(下)
Spring Cloud Alibaba快速入门-Nacos配置中心(上)
Spring Cloud Alibaba快速入门-Nacos配置中心(下)
Spring Cloud Alibaba快速入门-OpenFeign
Spring Cloud Alibaba快速入门-OpenFeign进阶用法
Spring Cloud Alibaba快速入门-Sentinel
Spring Cloud Alibaba快速入门-Sentinel流量控制(FlowRule)
Spring Cloud Alibaba快速入门-Sentinel熔断规则
Spring Cloud Alibaba快速入门-Sentinel热点参数限流
Spring Cloud Alibaba快速入门-Gateway
Spring Cloud Alibaba快速入门-分布式事务Seata
Spring Cloud Alibaba快速入门-分布式事务Seata(下)
更多推荐

所有评论(0)