且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SpringCloud07_Nacos的概述、安装、搭建提供者、消费者工程案列、配置中心、Namespace、Group、Data ID、高可用的集群配置(三)

更新时间:2022-09-07 13:14:34

⑤. Nacos作为配置中心-基础配置


DataID 掌握

(1). Nacos中的dataid的组成格式与SpringBoot配置文件中的匹配规则

(2). 官网


SpringCloud07_Nacos的概述、安装、搭建提供者、消费者工程案列、配置中心、Namespace、Group、Data ID、高可用的集群配置(三)


(3). 实操

①. 配置新增nacos-config-client-dev


SpringCloud07_Nacos的概述、安装、搭建提供者、消费者工程案列、配置中心、Namespace、Group、Data ID、高可用的集群配置(三)


②. Nacos界面配置对应


SpringCloud07_Nacos的概述、安装、搭建提供者、消费者工程案列、配置中心、Namespace、Group、Data ID、高可用的集群配置(三)


③. 设置DataId


公式:

(${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension})


prefix默认为 spring.application.name的值


spring.profile.active即为当前环境对应的 profile,可以通过配置项 spring.profile.active来配置


file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置


SpringCloud07_Nacos的概述、安装、搭建提供者、消费者工程案列、配置中心、Namespace、Group、Data ID、高可用的集群配置(三)


  • ①. 新建:cloudalibaba-config-nacos-client3377
  • ②. POM


    <dependencies>
        <!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--一般基础配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>


  • ③. YML
  1. Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,此能保证项目正常启动
  2. springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application


(1).bootstrap.yml
server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #服务注册中心地址
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #指定yaml格式的配置


(2).application.yml
spring:
  profiles:
    active: dev


④. 主启动


@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377 {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigClientMain3377.class,args);
    }


⑤. 业务类


@RestController
@RefreshScope//支持Nacos的动态刷新功能
//@RefreshScope:修改下nacos中的yaml配置文件,再次调用查看配置的接口,就会发现配置已经刷新
public class ConfigClientController{
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }
}


⑥. 测试


启动前需要在nacos客户端-配置管理-配置管理栏目下有对应的yaml配置文件


运行cloud-config-nacos-client3377的主启动类


调用接口查看配置信息 http://localhost:3377/config/info


自带动态刷新:修改下Nacos中的yaml配置文件,再次调用查看配置的接口,就会发现配置已经刷新


⑦. 如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置