统一配置管理
nacos不仅可以实现注册中心的功能,还能完成配置管理
nacos中实现了配置的热更新,可以集中管理配置,再配置变更的时候及时通知微服务,实现配置的热更新,服务不用重写启动
新建配置
在nacos中添加配置文件
项目启动的时候会去读取nacos中的配置文件和application.yml进行合并,但是appliacation启动顺序比nacos配置文件要后,而nacos地址是写在application中的,那么我们就需要把nacos配置地址放在优先级更高的bootstrap.yml中
pom.xml
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
bootstrap.yml
spring:
application:
name: userService
profiles:
active: dev #环境
cloud:
nacos:
server-addr: localhost:8848 #nacos地址
config:
file-extension: yaml #文件后缀名
配置热更新
Nacos中的配置文件变更后,微服务无需重启就可以感知
两种配置方式:
方式一:在@Value注入的变量所在类上添加注解@RefreshScope
方式二:使用ConfigurationProperties注解
多环境配置共享
微服务启动时会从nacos读取多个配置文件:
1.[spring.application.name]-[spring.profiles.active].yaml,例如: userservice-2.dev.yaml[spring.application.name].yaml,例: userservice.yaml无论profile如何变化,[spring.application.namel.yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件
多配置的优先级
服务吗-profile.yaml(带环境的) > 服务名.yaml(多环境共享的) > 本地配置
nacos集群
首先我们怎么实现数据共享呢?
会先搭建一个mysql集群,让多个nacos都来访问这个mysql集群,在里面完成数据的读写。
用户请求进来的时候怎么让它把请求分发到各个nacos结点?
通过nginx进行负载均衡
搭建集群
搭建集群的基本步骤
- 搭建数据库,初始化数据库表结构
- 下载nacos安装包
- 配置nacos
- 启动nacos集群
- nginx反向代理
学习笔记form黑马程序员