首页 > 其他分享 >Nacos配置管理-统一配置管理、配置自动刷新、多环境多服务共享配置

Nacos配置管理-统一配置管理、配置自动刷新、多环境多服务共享配置

时间:2022-11-21 11:04:51浏览次数:48  
标签:配置文件 spring 配置 配置管理 Nacos nacos yaml 共享


目录

​​一、Nacos统一配置管理​​

​​二、配置自动刷新​​

​​方式一:在@Value注入的变量所在类上添加注解@RefreshScope​​

​​方式二:使用@ConfigurationProperties注解​​

​​三、多环境配置共享​​

​​三、多服务共享配置​​


一、Nacos统一配置管理

1、在Nacos同添加配置文件

Nacos配置管理-统一配置管理、配置自动刷新、多环境多服务共享配置_配置管理

 2、在微服务中引入Nacos的配置管理客户端依赖:

<!--nacos的配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

3、在userservice中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml:

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

4、在user-service中将pattern.dateformat这个属性注入到UserController中做测试:

@RestController
@RequestMapping("/user")
public class UserController {

//注入nacos中的配置属性
@Value("${pattern.dateformat}")
private String dateformat;

//编写controller,通过日期格式化器来格式化现在的时间并返回
@GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));
}

//...略
}

二、配置自动刷新

Nacos中的配置文件变更后,微服务无需重启就可以感知,不过需要通过下面两种配置实现:

方式一:在@Value注入的变量所在类上添加注解@RefreshScope

@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {

//注入nacos中的配置属性
@Value("${pattern.dateformat}")
private String dateformat;

方式二:使用@ConfigurationProperties注解

@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
private String dateformat;
}

注意事项:

不是多有的配置都适合放到配置中心,维护起来比较麻烦

建议将一些关键参数,需要运行时调整的参数放在nacos

三、多环境配置共享

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

[spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml

[spring.appliction.name].yaml,例如:userservice.yaml

无论profile如何,[spring.appliction.name].yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件

Nacos配置管理-统一配置管理、配置自动刷新、多环境多服务共享配置_nacos_02

多种配置的优先级:

 

Nacos配置管理-统一配置管理、配置自动刷新、多环境多服务共享配置_共享配置_03

三、多服务共享配置

不同微服务之间可以共享配置文件,通过下面的两种方式来指定

方式一:

spring:
application:
name: userservice
profiles:
active: dev #环境
cloud:
nacos:
server-addr: localhost:80 # nacos地址
config:
file-extension: yaml # 文件后缀名
shared-configs: # 多服务间共享的配置列表
-datald: common.yaml # 要共享的配置文件id

方式二:

spring:
application:
name: userservice
profiles:
active: dev #环境
cloud:
nacos:
server-addr: localhost:80 # nacos地址
config:
file-extension: yaml # 文件后缀名
extends-configs: # 多服务间共享的配置列表
-datald: extend.yaml # 要共享的配置文件id

多种配置的优先级:

Nacos配置管理-统一配置管理、配置自动刷新、多环境多服务共享配置_共享配置_04

标签:配置文件,spring,配置,配置管理,Nacos,nacos,yaml,共享
From: https://blog.51cto.com/u_15815415/5873012

相关文章

  • PyCharm、Python、Django安装以及环境变量配置
    开发Python有很多IDE工具,我选择了PyCharm工具,因为风格和AndroidStudio极其的相似,对于我来说这个工具很容易上手。一、PyCharmPyCharm官网下载地址:http://www.jetbrains.com/......
  • Prometheus和Grafana监控Nacos
    Nacos0.8.0版本完善了监控系统,支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态,目前支持prometheus、elasticsearch和influxdb,下面结合prometheus和grafana......
  • k8s:配置启动参数时,一个小小的技巧提示:参数是可以多次指定的,以最后指定的为准
    参数是可以多次指定的,以【最后】指定的为准!参数是可以多次指定的,以【最后】指定的为准!参数是可以多次指定的,以【最后】指定的为准!  例子:多次指定同一个参数,最后的配......
  • mediapipe + pyside2 在mac m1下的环境配置
    mediapipe1.需要安装homebrew,且需要安装在/usr/local(若安装到/opt/,则后续步骤会出错,原因不详)/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/maste......
  • Nacos 之 Distro 协议
    1.概述Distro协议是阿里自研的一个最终一致性协议,继承了Gossip以及Eureka通信(PeerEurekaNodes)的优点并做进一步优化而出来的:对于原生的Gossip,由于随机选取发送消息......
  • 【Jmeter】21天打卡 05之配置元件之http信息头+Cookie管理器
    新建测试计划-线程组-取样器(http请求)-添加监听器(查看结果数)在http请求中输入www.baidu.com,查看结果树请求中的requestheaders头部字段包括如图1   Connectionk......
  • vs+qt静态编译环境配置
    一、简述Qt官方提供二进制安装包+vs开发环境默认只能通过动态编译。可以通过Qt提供工具Windeployqt把相关qt依赖dll复制到当前目录(但是会有windows系统提供dll不能关联,所以......
  • Git的安装以及配置
    Git的安装以及配置1.*Git的安装下载地址:官网Git的安装,网络上一找一大堆,所以这里笔者就简单将百度经验搬过来进行相关的简单介绍,大家熟悉一下步骤也就是了。1.双击既打......
  • UE /虚幻 Steam配置
    第一步:在项目插件中,打开OnlineSubsystemSteam 第二步:打开项目C++文件,在.Build.cs文件下的公共依赖模块名称中添加OnlineSubsystem和OnlineSubsystem  第三步:......
  • 给OpenWrt配置多个VLAN(比如访客网络),彼此隔离以提高网络安全性
    为何要给路由器配置多个VLAN?目前家庭上网设备越来越多。手机、电视上网大家都已经很熟悉了,可随着物联网(IoT)的发展,诸如指纹锁、扫地机器人、冰箱等设备也都纷纷上网。上网设......