[SpringCloud]Nacos配置管理

配置管理

  • Nacos实现配置热更新
    • 配置管理
    • 拉取配置
    • 配置热更新
    • 环境共享配置
  • Nacos集群搭建

Nacos实现配置热更新

配置管理

启动Nacos之后,在配置管理的配置列表中点击创建配置。

[SpringCloud]Nacos配置管理_第1张图片

  • Data ID 的命名规则为 服务名-开发环境名.文件扩展名

    在配置内容中配置想要实现热更新的配置,我这里只是为了方便演示所以配置的是端口号

拉取配置

首先引入拉取nacos配置所需的依赖。

<dependency>
    <groupId>com.alibaba.cloudgroupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
    <version>2.2.5.RELEASEversion>
dependency>

在服务启动读取application.yml文件前,它应该先从nacos读取共享的配置。bootstrap.yml的读取在其之前,所以应该在bootstrap.yml文件中配置nacos的地址并读取配置

spring:
  application:
  	#服务名
    name: userservice
  profiles:
  	#开发环境名
    active: public
  cloud:
    nacos:
      #nacos地址
      server-addr: localhost:8848
      config:
      	#配置文件扩展名
        file-extension: yaml 

此时启动服务便会发现服务成功从nacos拉取到配置

配置热更新

配置的热更新有两种方式。

  • 如果是通过@Value注解注入的变量,则在其所在类上加上@RefreshScope注解。

  • @RestController
    @RequestMapping("/hello")
    @RefreshScope
    public class HelloController{
        @Value($(pattern.hello))
        private String hello;
    }
    
  • 通过@ConfigurationProperties注入的变量可以直接刷新。

  • @ConfigurationProperties(prefix="pattern")
    public class HelloProperties{
        private String hello;
    }
    

    环境共享配置

    在设置Data Id时如果只写服务名不写生产环境名时,该配置为环境共享配置并将被同服务名的服务读取。

    配置优先级:

    [服务名]-[环境].yml > [服务名].yml > 本地配置

Nacos集群搭建

  • 搭建mysql集群并初始化数据库表
  • 下载解压nacos并进行集群和数据库配置
  • 分别启动节点
  • nginx反向代理

你可能感兴趣的:(SpringCloud,spring,cloud,spring,后端)