springboot -- 微服务 - 6.Nacos配置管理

六、Nacos配置管理

6.1、统一配置管理

实现配置更改的热更新
springboot -- 微服务 - 6.Nacos配置管理_第1张图片
Nacos中的配置管理图
springboot -- 微服务 - 6.Nacos配置管理_第2张图片

6.2、添加配置

在Nacos控制台界面
**注意:**不是把所有的配置文件都写进去,只是写一些有热更新需求的。
springboot -- 微服务 - 6.Nacos配置管理_第3张图片
springboot -- 微服务 - 6.Nacos配置管理_第4张图片

6.3、读取配置

6.3.1、读取配置流程概述springboot -- 微服务 - 6.Nacos配置管理_第5张图片

6.3.2、配置流程

1、引入配置管理客户端依赖

<dependency>
	<groupId>com.alibaba.cloudgroupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
2、新建bootstrap.yml文件

在项目中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml。
服务名称-开发环境.后缀名 —> 就是刚刚添加配置时的Id。

spring:
  application:
    name: userservice #服务名称
  profiles:
    active: dev # 开发环境,这里是dev
  cloud:
    nacos :
      server-addr: LocaLhost:8848 # Nacos 地址
      config:
        file-extension: yaml #文件后缀名

6.3.3、配置自动更新(热更新)

Nacos中的配置文件变更后,微服务无需重启就可以感知。有两种配置方式实现。

1、方式一

在@Value注入的变量所在类上添加注解@RefreshScope
springboot -- 微服务 - 6.Nacos配置管理_第6张图片

2、方式二(推荐使用)

使用@ConfigurationProperties注解
springboot -- 微服务 - 6.Nacos配置管理_第7张图片

6.4、多环境配置共享

微服务启动时会从nacos读取多个配置文件:

  • [spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml。
  • [spring.application.name].yaml,例如:userservice.yaml。
    无论profile如何变化,[spring.application.name].yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件。

6.5、配置优先级

  • 服务名-profile.yaml > 服务名称.yaml > 本地配置
    springboot -- 微服务 - 6.Nacos配置管理_第8张图片

6.6、Nacos集群

springboot -- 微服务 - 6.Nacos配置管理_第9张图片

6.6.1、搭建集群的基本步骤:

  • 搭建数据库,初始化数据库表结构
  • 下载nacos安装包
  • 配置nacos
  • 启动nacos集群
  • nginx反向代理

6.6.2、 配置nacos

1、进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf
2、添加以下内容。

127.0.0.1:8845
127.0.0.1.8846
127.0.0.1.8847

在这里插入图片描述
3、修改application.properties文件,添加数据库配置。

spring.datasource.platform=mysql  #打开mysql集群
db.num=1  #集群数量
db.url.0=jdbc :mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123

6.6.3、 启动nacos集群

依次进入bin目录,打开cmd,执行

startup.cmd

6.6.4、 nginx反向代理

修改conf/nginx.conf文件,配置文件如下

upstream nacos-cluster {
	server 127.0.0.1:8845;
	server 127.0.0.1:8846;
	server 127.0.0.1:8847;
}
server {
	listen 80;
	server_ name  localhost;
		location /nacos {
				proxy_ pass http://nacos-cluster;
		}
}

6.6.5、java代码配置

其他配置也相似,直接访问locaLhost:80

spring:
  application:
    name: userservice
  profiles:
    active: dev #环境
  cloud:
    nacos:
      server-addr: locaLhost:80 # nacos 地址
      config:
        file-extension: yaml #文件后缀名

你可能感兴趣的:(学习笔记,spring,boot,微服务)