SpringCloud Alibaba微服务中Nacos分布式配置中心(一)——基础配置的实现

前言:

本篇博客主要说明使用nacos做服务配置中心,基础配置的实现。

1.新建一个服务模块,在pom.xml文件中引入以下依赖:

<!--springcloud alibb nacos配置中心依赖 -->
   <dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
       <version>2.2.3.RELEASE</version>
   </dependency>
   <!--springcloud alibb nacos依赖 -->
   <dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
       <version>2.2.3.RELEASE</version>
   </dependency>

2.新建两个配置文件boostrap.yml和application.yml

boostrap.yml

server:
  port: 7777

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

#nacos分布式配置中心dataId的完整格式:${prefix}-${spring.profiles.active}.${file-extension}
#dataId:nacos_config_service-dev.yaml

application.yml

spring:
  profiles:
    active: dev

这么做的原因是:

在这里插入图片描述
3.在nacos上新建一个配置文件

在这里插入图片描述
在这里插入图片描述

特别注意的是,配置文件的dataId是有格式要求的,如果不按照官方要求的格式来进行命名的话,将会出现识别不了的错误。官方给出的命名格式如下:

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

${
    
    prefix}-${
    
    spring.profiles.active}.${
    
    file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项
    spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml类型。

在这里插入图片描述

官方参考文档地址为:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

在本案例中,dataId如下所示:

在这里插入图片描述
注意:

这里有一个小细节,如果是yaml类型的配置文件,后缀名必须是.yaml而不能是.yml,这点nacos还没有能够识别到两种格式。

根据格式要求给配置文件命名并发布:

在这里插入图片描述
创建成功后如下所示:

在这里插入图片描述
4.编写控制器代码,这里是读取nacos上配置文件的信息,通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新:

@RestController()
@RefreshScope
public class ConfigController {
    
    

    @Value("${config.info}")
    private String configInfo;

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

5.启动服务,访问http://localhost:7777/getConfigInfo,成功获取到配置文件上的信息:

在这里插入图片描述
6.修改nacos上配置文件版本号version为2.0:

在这里插入图片描述

在这里插入图片描述

7.再次访问http://localhost:7777/getConfigInfo:

在这里插入图片描述

发现服务读取的配置文件版本号version已变成了2.0,说明已经实现了配置修改后动态刷新

至此,SpringCloud Alibaba微服务中Nacos分布式配置中心基础配置已成功实现!

猜你喜欢

转载自blog.csdn.net/weixin_44009447/article/details/111593323