Nacos配置中心和数据隔离在idea中的实现
Nacos
配置中心
配置中心和idea开发环境配置的关系:
nacos身为注册中心和配置中心,它所进行的配置在和微服务的配置情况下,我们需要了解到,实际上是有先后的关系的,进行配置中心的配置的时候,遵循着后载入优先,外部优先,也就是说在idea使用多个配置的时候,导入顺序决定覆盖规则,后导入的配置会覆盖先导入的配置
数据隔离
我们在进行项目开发的时候,是有多种配套环境的dev,test,prod,每个微服务,使用同一种配置,在每套环境之下,这个配置值是不一样的,比方说我们从测试环境到生产环境,我们只需要进行环境的切换,就可以加载出新的环境配置,从而实现数据隔离的配置。
nacos中有这Namesoace名称空间,名称空间下面有很多的分组Group,分组下面有很多的数据集Data-id这样就可以实现我们的需求,当我们进行环境的切换的时候进行相应的激活就可以了。
在我们实现nacos进行配置的时候按照上面的图,先进行命名空间的创建:
命名空间创建之后我们就可以进行分组,比方说product和order进行分组,让我们可以进行配置的设置。
在我们进行配置的时候需要记住它们之间的层层关系:
在我们的idea里面可以这样进行设置,当我们经过下面的配置之后就可以实现我们配置的实现,选择我们相应环境下的配置:
server:port: 8080
spring:profiles:active: devapplication:name: service-ordercloud:nacos:server-addr: 127.0.0.1:8848config:import-check:enabled: falsenamespace: ${spring.profiles.active:dev}
---
spring:config:import:- nacos:common.properties?group=order- nacos:database.properties?group=orderactivate:on-profile: dev
---
spring:config:import:- nacos:common.properties?group=order- nacos:database.properties?group=orderactivate:on-profile: prod
---
spring:config:import:- nacos:common.properties?group=order- nacos:database.properties?group=orderactivate:on-profile: test
总结:
注册中心:
1.导入spring-cloud-starter-alibaba-nacos-discovery依赖,配置nacos地址
2.@EnableDiscoveryClient开启服务发现功能。
扩展: 1.DiscoveryClient 获取服务实例列表
2.LoadBalancerClient 负载均衡选择一个实例(需要引入 spring-cloud-starter-loadbalancer)
3.RestTemplate 可以发起远程调用
配置中心
1.引|入 spring-cloud-starter-alibaba-nacos.config 依赖,配置Nacos地址
2.添加 数据集(data-id),使用spring.config.import 导入数据集
3.@Value + @RefreshScope 取值 + 自动刷新
4.@ConfigurationProperties批量绑定自动刷新
5.NacosConfigManager 监听配置变化
扩展:配置优先级;namespace区分环境、group区分微服务、 data-id区分配置 实现 数据隔离+环境切换