Nacos动态刷新配置

2022-11-22 20:20:20 浏览数 (1)

需求: 日志打印如果全部按照info等级的话,用不了多久就占据了大量的空间,且大批数据在服务稳定后无意义,但随时重启服务器又会导致用户服务中断,因此需要根据情况动态开启日志warn打印和info打印。

设定当前服务已经运行于nacos框架的基础上,配置动态刷新。

一般的springboot默认配置是application.yml文件,如果想指定配置为application-prod.yml的话在服务启动时附带一段启动参数

代码语言:javascript复制
   -Dspring.config.location=application-prod.yml

如果想要将配置传至nacos中,并动态刷新生效,首先加上maven依赖

代码语言:javascript复制
<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

再在配置文件同级的位置加上一个bootstrap-prod.properties文件,内容如下:

代码语言:javascript复制
spring.application.name=xxxxxxxx                          //服务名
spring.cloud.nacos.config.file-extension=yaml             //配置文件名尾缀
spring.cloud.nacos.config.server-addr=xxxx.xxxxxxxxx.com:8848    //nacos地址
spring.cloud.nacos.config.group=qdchess                   //配置组名

然后新建一个文件夹,文件夹名为上面的配置组名,文件名为服务名,尾缀为上面配置的尾缀,然后打包压缩,上传至nacos中。

如果按照上面文件打包命名方式的话,在配置列表中就会正确弹出已上传的配置。这时候再以默认方式启动服务,服务就会从云端nacos中读取配置

在服务运行中对该配置文件进行修改后进行发布,服务会动态切换配置文件,至此,就满足了需求中类似动态修改loggin:level:root: warn 与info的需求,如需动态切换别的配置文件,如短信服务地址签名accessKeyId之类的,需要在引入类的位置再加上一个注解@RefreshScope。后即可动态生效配置。

详细配置文件源码读取原理后期会发布,此处仅记录并展示使用方法。

Post Views: 727

0 人点赞