nacos配置中心使用

nacos可以用来做配置中心,进行配置的热更新

使用nacos做配置中心的流程
原项目启动流程
项目启动 -> 加载application.yml配置文件 -> 创建Spring容器 -> 加载Bean
使用nacos做配置中心的启动流程
项目启动 -> 读取bootstrap.yml -> 拉取nacos配置文件 -> 加载application.yml
-> 创建Spring容器 -> 加载Bean

进行读取,nacos当前服务环境配置文件 > nacos当前服务配置文件 > 本地配置

image

nacos配置文件与bootstrap文件
  1. 添加依赖
    <!--添加nacos配置管理依赖-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
  1. 创建bootstrap.yml
    根据spring.cloud.nacos.server-addr获取nacos地址,再根据${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}作为文件id,来读取配置。
    spring:
      application:
    	name: userservice # 服务名称
      profiles:
    	active: dev #开发环境,这里是dev
      cloud:
    	nacos:
    	  server-addr: localhost:8848 # Nacos地址
    	  config:
    		file-extension: yaml # 文件后缀
    
读取配置

使用 @Value("${配置项}")

热更新配置

1. @Value注入的变量所在类上加@RefreshScope注解
2. 添加读取类,类上添加注解@ConfigurationProperties(prefix = "前缀配置项")
   将类注入到Spring中以方便使用,添加set、get,成员变量名即要读取的配置项
   在使用的地方,注入配置读取类对象,通过get读取类中配置
配置共享

包含环境的服务配置,优先级最高

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

不包含环境的服务配置,可以进行配置共享,即同一服务名的不同环境都可以使用该配置

${srping.application.name}.${spring.cloud.nacos.config.file.extension}

如果同一服务启动不同的环境和端口

1. VMOptions 配置-Dserver.port = 端口号
2. -Dspring.profiles.active=dev OR 更改active profile
posted @ 2023-02-09 15:35  KoitoYuuuuuu  阅读(206)  评论(0)    收藏  举报