微服务&微服务架构简单入门五 配置管理

一.什么是配置管理

在这里插入图片描述
这是我们之前的写法,但是他有一定性的缺点,因为他的所有配置都是明文的,
被太多的开发人员所知,
举个例子,在一个项目开发中,张三开发了一个新功能,业务需要,保留原来老逻辑的代码,所有他抽取了一个 开关变量 isNewBusi来控制,突然新功能上了生产后,发现有bug,怎么做到修改isNewBusi的值不需要重启。

根据上图我们知道配置管理的作用可以主要总结如下
1.不同环境不管配置
2. 配置属性动态刷新

引入配置中心
在这里插入图片描述
根据这幅图,我们微服务需要解决的问题
1 微服务怎么知道配置中心的地址

2 微服务到底需要连接哪个环境

3 怎么找到nacos config上的对应的配置文件

微服务接入配置中心的步骤
①:添加依赖包spring-cloud-alibaba-nacos-config

 1 <dependency>
 2 <groupId>com.alibaba.cloud</groupId> 
 3 <artifactId>spring‐cloud‐alibaba‐nacos‐config</artifactId> 
 4 </dependency>

②:编写配置文件,需要写一个bootstrap.yml配置文件 配置解释:

server-addr: localhost:8848 表示我微服务怎么去找我的配置中心

spring.application.name=order-center 表示当前微服务需要向配置中心 索要order-center的配置

spring.profiles.active=prod 表示我需要向配置中心索要order-center的生 产环境的配置

索要文件的格式为 ${application.name}- s p r i n g . p r o f i l e s . a c t i v e . {spring.profiles.active}. spring.profiles.active.{file-extension}

真正在nacos配置中心上 就是 order-center-prod.yml

1 spring: 
	2 cloud: 
	3 nacos: 
	4 config: 
	5 server‐addr: localhost:8848 
	6 file‐extension: yml 
	7 application: 
	8 name: order‐center 
	9 profiles:
	10 active: prod

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

现在我们需要不停机改变我们的生产环境isNewBusi的值来控制我们的业务逻辑。我们需要 在对应的Controller上添加一@RefreshScope 进行动态刷新

二.怎么解决 生产环境,测试环境,开发环境相同的配置。(配置通用)

在这里插入图片描述
比如我们的servlet-context 为order-center
查看工程启动日志
在这里插入图片描述

所以我们需要创建一个通用配置文件:order-center.yml配置
那么order-center.yml就是一个通用配置了,不管是启动prod,还是dev 都会有该段配置order-server的 context-path 配置

配置的优先级 精准配置 会覆盖 与通用配置 相同的配置,然后再和通用配置互补。
在这里插入图片描述
不同微服务的通用配置。
在这里插入图片描述
通过 shared-dataids 方式 比如 每一个微服务都要写服务注册地址等

1 spring: 
2 cloud: 
3 nacos: 
4 discovery: 
5 server‐addr: localhost:8848

我们就可以把该配置提取为一个公共配置yml,提供给所有的工程使用

1 spring: 
2 cloud:
3 nacos: 
4 config: 
5 server‐addr: localhost:8848 
6 file‐extension: yml 
7 #各个微服务共享的配置,注意越拍到后面的公共配置yml优先级越高 
8 shared‐dataids: common.yml,common2.yml 
9 #支持动态刷新的配置文件 
10 refreshable‐dataids: common.yml,common2.yml 
11 application: 
12 name: order‐center 
13 profiles: 
14 active: dev

配置优先级 2020-01-09 21:21:19.115 INFO 15316 — [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name=‘NACOS’, propertySources=[ NacosPropertySource {name=‘order-center-dev.yml’}, NacosPropertySource {name=‘order-center.yml’}, NacosPropertySource {name=‘common2.yml’}, NacosPropertySource {name=‘common.yml’} ]}

通过 ext-config方式 同样配置到越后面的配置 优先级越高

1 spring: 
2 cloud: 
3 nacos: 
4 config: 
5 server‐addr: localhost:8848 
6 file‐extension: yml 
7 ext‐config: 
8 ‐ data‐id: common3.yml 
9 group: DEFAULT_GROUP 
10 refresh: true 
11 ‐ data‐id: common4.yml
12 group: DEFAULT_GROUP 
13 refresh: true

各个配置的优先级

精准配置>不同环境的通用配置>不同工程的(ext-config)>不同工程 (shared- dataids)

1 spring: 
2 cloud: 
3 nacos: 
4 config: 
5 server‐addr: localhost:8848 
6 file‐extension: yml 
7 shared‐dataids: common.yml,common2.yml 
8 refreshable‐dataids: common.yml,common2.yml 
9 ext‐config: 
10 ‐ data‐id: common3.yml 
11 group: DEFAULT_GROUP 
12 refresh: true
13 ‐ data‐id: common4.yml 
14 group: DEFAULT_GROUP 
15 refresh: true 
16
17 application: 
18 name: order‐center 
19 profiles: 
20 active: dev

上述配置 加载的优先级
1)order-center-dev.yml 精准配置
2)order-center.yml 同工程不同环境的通用配置
3)ext-config: 不同工程 通用配置
3.1):common4.yml
3.2): common3.yml
4) shared-dataids 不同工程通用配置
4.1)common2.yml
4.2)common1.yml

You Your You Yours

在这里插入图片描述
扫码关注获取Java资源!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT Talk

谢谢您对我的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值