配置中心
配置中心就是把配置文件写在Nacos中,当你修改配置中心内容时项目不需要重启项目即可根据配置文件实现实时更新
官方文档演示:
过程如下:
1、引入依赖
common模块
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2、创建bootstrap.properties
所有配置文件中优先级最高
服务启动后会先读取这个文件,读取后就会去从nacos配置中心加载mall-coupon.properties文件
spring.application.name=mall-coupon spring.cloud.nacos.config.server-addr=127.0.0.1:8848
3、配置中心定义新配置文件
其中,DataID必须为微服务名.properties
配置的内容什么都可以
4、测试
- 在Controller加上@RefreshScope来动态获取配置数据
配置中心修改配置再刷新
NameSpace
命名空间就是用来隔离资源的
什么情况下会用到呢?
你生产环境想用这一套配置,开发环境想用另一套配置。那么就可以把配置文件放到不同的命名空间中
1、新建命名空间
配置文件
2、bootstrap.properties指定命名空间
微服务启动的时候会先去bootstrap.properties加载,然后根据配置去Nacos配置中心找到文件
3、测试
这个配置就是我prop命名空间定义的配置文件
Group
一般Group和Namespace配合使用
解决方案为:每个微服务创建自己的命名空间,使用配置分组区分环境
分组在创建配置文件的时候直接进行创建即可
1、创建微服务NameSpace并创建分组
2、bootstrap.properties指定分组
spring.application.name=mall-coupon spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=8c4aa2e1-412b-4992-90d7-b74cf3abbef1 spring.cloud.nacos.config.group=11
3、测试
加载多配置集
配置相关的如果都放到一个配置文件中会很乱难维护
所以把配置文件进行拆分,spring相关的放spring配置文件,mybatis相关的放mybatis配置文件…
Nacos也可以做到
1、抽取出多个配置文件
其他配置文件同理
2、bootstrap.properties指定加载多配置集
这里的spring.cloud.nacos.config.extension-configs[0].data-id意思就是说,集合里的元素是一个个数组,数组里有是一个个对象所以第一个元素可以赋值多次
下面配置也是同理
# 配置中心加载配置文件 spring.application.name=mall-coupon spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=8c4aa2e1-412b-4992-90d7-b74cf3abbef1 spring.cloud.nacos.config.group=11 # 加载多配置集 spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml spring.cloud.nacos.config.extension-configs[0].group=11 spring.cloud.nacos.config.extension-configs[0].refresh=true spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml spring.cloud.nacos.config.extension-configs[1].group=11 spring.cloud.nacos.config.extension-configs[1].refresh=true spring.cloud.nacos.config.extension-configs[2].data-id=other.yml spring.cloud.nacos.config.extension-configs[2].group=11 spring.cloud.nacos.config.extension-configs[2].refresh=true
3、测试
我们注释掉所有本地的yml配置并重启
总结
微服务任何配置信息,任何配置文件都可以放在配置中心中
线上环境的时候我们可以把所有配置都放在配置中心,微服务中只保留一个bootstrap.properties文件说明加载配置中心哪些配置文件即可
GateWay网关