之前:Spring Cloud Config + Bus
1) Github 上添加配置⽂件
2)创建Config Server 配置中⼼—>从Github上去下载配置信息
3)具体的微服务(最终使⽤配置信息的)中配置Config Client—> ConfigServer获取配置信息
有Nacos之后,分布式配置就简单很多
Github不需要了(配置信息直接配置在Nacos server中),Bus也不需要了(依然可以完成动态刷新)接下来
1、去Nacos server中添加配置信息
2、改造具体的微服务,使其成为Nacos Config Client,能够从Nacos Server中获取到配置信息
Nacos server 添加配置集
Nacos 服务端已经搭建完毕,那么我们可以在我们的微服务中开启 Nacos 配置管理
1)添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency
2)微服务中如何锁定 Nacos Server 中的配置⽂件(dataId)
通过 Namespace + Group + dataId 来锁定配置⽂件,Namespace不指定就默认public,Group不指定就默认 DEFAULT_GROUP
dataId 的完整格式如下
${prefix}-${spring.profile.active}.${file-extension}
prefix
默认为 spring.application.name
的值,也可以通过配置项
spring.cloud.nacos.config.prefix
来配置。
spring.profile.active
即为当前环境对应的 profile
。 注意:当 spring.profile.active
为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成
${prefix}.${fileextension}file-exetension
为配置内容的数据格式,可以通过配置项
spring.cloud.nacos.config.file-extension
来配置。⽬前只⽀持 properties
和 yaml
类型。
cloud:
nacos:
discovery:
# 集群中各节点信息都配置在这⾥(域名-VIP-绑定映射到各个实例的地址信息)
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
namespace: f965f7e4-7294-40cf-825c-ef363c269d37
group: DEFAULT_GROUP
file-extension: yaml
思考:⼀个微服务希望从配置中⼼Nacos server中获取多个dataId的配置信息,可以的,扩展多个dataId
# nacos配置
cloud:
nacos:
discovery:
# 集群中各节点信息都配置在这⾥(域名-VIP-绑定映射到各个实例的地址信息)
server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
# nacos config 配置
config:
server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
# 锁定server端的配置⽂件(读取它的配置项)
namespace: 07137f0a-bf66-424b-b910-20ece612395a # 命名空间id
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使⽤默认分组可以不配置
file-extension: yaml #默认properties
# 根据规则拼接出来的dataId效果:lagou-service-resume.yaml
ext-config[0]:
data-id: abc.yaml
group: DEFAULT_GROUP
refresh: true #开启扩展dataId的动态刷新
ext-config[1]:
data-id: def.yaml
group: DEFAULT_GROUP
refresh: true #开启扩展dataId的动态刷新