统一配置管理:
1在 Nacos 中添加配置信息:
启动nacos服务,在bin目录下运行cmd,输入startup.cmd -m standalone
访问nacos服务,点击添加配置管理,进行如下配置(控制日期格式)
2 引入 Nacos 的配置管理客户端依赖:
<!--nacos
配置管理依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 在 userservice 中的 resource 目录添加一个 bootstrap.yml 文件,这个文件是引导文件,优先级高于application.yml :
spring:application:name: userservice #服务名称profiles:active: dev #开发环境,这里是 devcloud:nacos:server-addr: localhost:8848 # Nacos地址config:file-extension: yaml #文件后缀名
3删除(注释)application.yml里面重复配置文件:
4在 user-service 中将 pattern.dateformat 这个属性注入到 UserController 中做测试:
//注入 nacos中的配置属性@Value("${pattern.dateformat}")private String dateformat;//编写 controller,通过日期格式化器来格式化现在时间并返回@GetMapping("now")public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat, Locale.CHINA));}
5配置自动刷新
Nacos 配置更改后,微服务可以实现热更新,方式:
①. 通过 @Value 注解注入,结合 @RefreshScope 来刷新:
在 @Value 注入的变量所在类上添加注解 @RefreshScope
②. 通过 @ConfigurationProperties 注入,自动刷新
6多环境配置共享:
服务启动时会从 nacos 读取多个配置文件:
[spring.application.name]-[spring.profiles.active].yaml ,例如: userservice-dev.yaml
[spring.application.name].yaml ,例如: userservice.yaml
无论 profile 如何变化, [spring.application.name].yaml 这个文件一定会加载,因此多环境共享配置可以写入这个:
7Nacos 集群搭建:
集群搭建步骤:
①. 搭建 MySQL 集群并初始化数据库表
②. 下载解压 nacos
③. 修改集群配置(节点信息)、数据库配置
④. 分别启动多个 nacos 节点
⑤. nginx 反向代理