前言
- Nacos既可以做注册中心,也可以做配置中心。
- 随着分布架构的应用,配置文件会随着应用的拆分而拆分,每个应用都有自己的配置文件,但是一个微服务中不同应用的配置会存在冗余,所以为了统一管理配置文件,可以引入nacos配置中心。它可以实现在配置中心的后台修改文件后发布,配置中心服务端是可以感知文件的变化,然后将信息推送到客户端。
在nacos界面上配置服务
在Nacos界面上面添加配置文件
开始 :在配置管理-->配置列表-->点击加号
中间:添加配置信息
结束:配置完成以及查看
从微服务上面拉取配置
nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置并且与本地的application.yml配置合并之后,才能保证项目正常运行启动.
但是如果尚未读取application.yml,怎么得知nacos地址呢?
1.首先添加nacos配置必要的依赖
<!-- nacos config 配置管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.添加bootstrap.yaml
server:
port: 9003
spring:
application:
name: nacos-config-client
profiles:
active: test
cloud:
nacos:
discovery:
server-addr: localhost:8848
config:
server-addr: localhost:8848
file-extension: yaml
这里会根据spring.cloud.nacos.server-addr获取nacos地址,再根据配置规则公式${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 作为文件id,来读取配置。本例,就是去读取nacos-config-client.yaml :
![](https://i-blog.csdnimg.cn/blog_migrate/6ee696038d5cda80acb30ec2641fe238.png)
@RestController
@RefreshScope
public class ConfigclientController {
@Value("${config.info}") //在注册中心上配置的config.info 注意 名称要相同
private String configInfo;
@GetMapping("/config/info")
public String getconfigInfo() {
return configInfo;
}
}
4.访问路径块 http://localhost:9003/config/info
![](https://i-blog.csdnimg.cn/blog_migrate/3805e5b5ea206733521b8308fbc927e6.png)
Nacos命名空间namespace、分组group和服务名Data id三者关系
- Nacos默认的命名空间是public,Namespace主要用来实现隔离
- Group默认是DEFAULT GROUP,Group可以把不同的微服务划分到同一个分组里面去
- Service就是微服务;一个Service可以包含多个Cluster(集群),Nacos默认Cluster是DEFAULT,Cluster是对指定微 服务的一个虚拟划分
Naco环境隔离
Nacos创建namespace默认情况下,所有service、data、group都在同一个namespace,名为public,
Namespace主要用来实现隔离 比方说我们现在有三个环境:开发dev、测试test、生产produce环境,我们就可以创建三个Namespace,不同的Namespace之间是隔离的
修改消费者的yml,将T的命名空间随便修改一个
server:
port: 83
spring:
application:
name: nacos-order-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: 4da815f8-5480-411b-a42d-329a0058a500 #test命名空间id
# 消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
nacos-user-service: http://nacos-payment-provider
重启,登录nacos页面
Nacos之DataId配置
![](https://i-blog.csdnimg.cn/blog_migrate/62f7a2ae7df5a37b9fa80798bf26b06b.png)
我们主要就是通过spring.profile.active这个属性进行多环境下的配置文件的读取,来进行data id 的修改配置
Nacos分组
在bookstrap.yaml里面,在config下增加一条group的配置即可,配置格式:组名_GROUP,可配置为DEV_GROUP或TEST_GROUP或PRODUCE_GROUP.
如果不分组,没有标明注释,走的是默认DEFAULT_GROUP