目录与学习目标

  1. 1:什么是配置中心
  2. 2Nacos配置规则
  3. 3Nacos界面操作
  4. 1:新建命名空间
  5. 2:在该命名空间下创建配置
  6. 3:创建配置
  7. 4:测试改动效果

1:什么是配置中心

对于一个项目来说,每个项目肯定都有自己的配置文件,
可以配置文件可以是写在yml或者通过数据的形式与应用一起部署。

针对于SpringCloud体系,每个服务也都需要配置,那么需要有一个配置中心,
专门管理各个微应用的配置信息,并且在配置发送更新,马上可以读取到最新的配置信息。

2:Nacos配置规则

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profile.active}.${file-extension}

prefix 默认为 spring.application.name 的值,
         也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

spring.profile.active 即为当前环境对应的 profile。 

file-exetension 为配置内容的数据格式,
        可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。
         目前只支持 properties 和 yaml 类型。


注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
spring:
  application:
    name: server-name
  cloud:
    nacos:
      discovery:
        server-addr: nacos-host:nacos-port
      config:
        namespace: f3533721-4b21-4ef0-a373-e78b71f639c7
        server-addr: nacos-host:nacos-port
        group: DEFAULT_GROUP
        file-extension: yml
配置详细讲解

 config:
    #在nacos上空间地址(默认为public空间 则不需要填)
    namespace: f3533721-4b21-4ef0-a373-e78b71f639c7

    #nacos服务的地址
    server-addr: nacos-host:nacos-port

    #在nacos上设置的分组
    group: DEFAULT_GROUP

    #在nacos上设置的配置文件格式
    file-extension: yml

spring.application.name 服务的名称
spring.cloud.nacos.config.prefix 配置文件的前缀(如没有这个  则使用默认是 服务的名称)

spring.cloud.nacos.config.file-extension 配置文件后缀,用于拼接配置配置文件名称

使用SpringCloudConfig这种统一配置时Spring Boot 配置文件的加载顺序,
依次为  bootstrap.properties -> bootstrap.yml 

而Nacos不会读取 application.yml的配置 只会读取bootstrap.yml 
因此需要把 application.yml 修改名称为 bootstrap.yml

3:Nacos界面操作

1:新建命名空间

image.png

2:在该命名空间下创建配置

image.png

3:创建配置

image.png

4:测试改动效果

 @RefreshScope 注解,这个注解主要用于配置的自动更新,
    即在Nacos中该项配置发生变化时,在接口中就能感知到,获取到最新的值。

 请求完之后 修改nacos-provider 配置下 app version 的值 再次请求
 根据返回结果发现已经动态刷新了
@RestController
@Slf4j
@RefreshScope
public class NacosConfig {

    @Value("${app.version}")
    private String version;

    @GetMapping(value = "/config/version")
    public String version() {
        return "Hello Nacos Config " + version;
    }
}

项目连接

请配合项目代码食用效果更佳:
项目地址:
https://github.com/hesuijin/spring-cloud-alibaba-project

在service-provider-demo  模块下
在service-consumer-demo 模块下