nacos配置中心的使用规则
什么是nacos配置中心
所谓配置中心:将项目需要的配置信息保存在配置中心,需要读取时直接从配置中心读取,方便配置管理的微服务工具
我们可以将部分yml文件的内容保存在配置中心
一个微服务项目有很多子模块,这些子模块可能在不同的服务器上,如果有一些统一的修改,我们要逐一修改这些子模块的配置,由于它们是不同的服务器,所以修改起来很麻烦
如果将这些子模块的配置集中在一个服务器上,我们修改这个服务器的配置信息,就相当于修改了所有子模块的信息,这个服务器就是配置中心
**使用配置中心的原因就是能够达到高效的修改各模块配置的目的**
配置中心的使用
Nacos既可以做注册中心,也可以做配置中心
Nacos做配置中心,支持各种格式\类型的配置文件
properties\yaml(yml)\txt\json\xml等
Nacos数据结构
namespace:命名空间
group:分组
Service/DataId:具体数据
**命名空间**
namespace是Nacos提供的最大的数据结构
一个Nacos可以创建多个命名空间
一个命名空间能够包含多个group
每一个group中又可以包含多条配置信息
在nacos中创建命名空间
在上图连接的位置可以新增命名空间,填写命名空间名称和描述即可
Nacos有默认的命名空间public不能删除和修改
添加命名空间后,我们在Nacos中注册的服务或添加的配置就可以指定命名空间了
因为多个命名空间可以隔离项目,每个项目使用自己的命名空间,互不干扰
**分组**
一个命名空间中可以有多个分组,进行进一步分离
我们使用时,如果不需要进一步分组,推荐使用group名称:DEFAULT_GROUP
**服务或配置**
确定了命名空间和分组之后
我们就可以添加服务或配置了
之前我们启动的各种模块都是服务,之前都是默认保存在public命名空间中
下面我们主要使用配置中心的功能,在命名空间中添加配置
添加配置就是设置DataId
实际在Nacos中定位一个配置的结构为
Namespace>Group>DataId
Nacos添加配置
Nacos首页->配置管理->配置列表->添加配置(右侧的大"+"号)
添加cart模块数据库连接配置
项目读取配置
csmall-cart-webapi模块要读取连接数据库的配置
如果要读取配置中心的信心,首先要添加依赖
```xml
<!-- nacos配置中心依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- 支持SpringCloud加载系统配置的依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
```
如果SpringBoot版本不是2.5.x,匹配的SpringCloud版本不是2020.x
可能添加的依赖不同,尤其是加载系统配置的依赖
需要根据实际的SpringBoot\SpringCloud版本来变化
像其他程序一样,在添加完依赖之后,还需要添加yml文件的配置
我们使用过application.properties和application.yml两种配置文件添加配置
实际上这两个配置文件加载是有顺序的
先加载yml
后加载properties
如果两个配置文件同时设置了同一个属性,后加载的覆盖掉先加载的
在SpringCloud环境下,我们添加了加载系统配置的依赖,当前项目就支持了额外一组配置文件
它们是bootstrap.yml和bootstrap.properties
这组配置文件实际开发时,主要配置系统内容,一般都是不轻易修改的
所以这组配置文件的加载时机,整体早于application.properties这一组
一个SpringCloud项目加载配置文件的顺序最终可能如下图
因为配置文件的特性,bootstrap这一组是加载系统配置的
所以我们读取配置中心的配置信息,最好添加在bootstrap.yml\properties中
下面我们就在cart-webapi项目中resources文件夹中添加bootstarp.yml文件
```yaml
spring:
cloud:
nacos:
config:
# 指定配置中心的位置
server-addr: localhost:8848
# 指定我们所在文件的组名(如果不指定命名空间,默认就是public)
group: DEFAULT_GROUP
# 加载配置文件的方式:
# 默认情况下,加载配置信息的格式为[服务名称].[后缀名称]
# 当前服务器名称为nacos-cart,所以只需要指定后缀名即可
file-extension: yaml
# 读取public命名空间中组名为DEFAULT_GROUP,DataId为nacos-cart.yaml的文件
```
如果一切顺利,那么cart模块是可以通过knife4j测试操作连接数据库的
我们可以新增购物车信息,或删除购物车信息后检查数据库是否有对应操作
因为我们已经删除了本地yml文件中数据库的配置,所以,它能连接操作数据库一定是配置中心生效了!