springboot中使用nacos作为配置中心
开发中,如果项目的配置文件全部放到项目的application.yaml中,那么可能会有安全风险,而且也不方便修改配置。
本文记录,如何使用nacos作为配置中心使用。
一、下载并且启动nacos;
1、下载nacos: https://github.com/alibaba/nacos/releases 下载最新编译后的压缩包。
因为是学习使用,我用的是window版本。
2、解压压缩包(不要放在中文目录下)。进入到bin目录:cd nacos/bin,使用cmd,启动:startup.cmd -m standalone (单机模式)
3、访问 Nacos 控制台:使用: http://localhost:8848/nacos 访问 Nacos 的控制台。

4、使用账号密码登录(默认账号密码为:nacos)
二、建议将nacos持久化到mysql数据库
1、下载SQL文件:https://github.com/alibaba/nacos/blob/develop/distribution/conf/mysql-schema.sql
2、修改 Nacos 安装目录中 conf/application.properties 文件,增加支持 MySQL 数据源配置,添加 MySQL 数据源的 URL、用户名和密码
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos_devtest db.password=youdontknow
nacos.core.auth.enabled=true nacos.core.auth.plugin.nacos.token.secret.key= xxx # 访问 Nacos 敏感接口的白名单,key 和 value 必须要有值 nacos.core.auth.server.identity.key=nacos nacos.core.auth.server.identity.value=nacos
使用上面的启动命令:重新启动nacos
三、创建配置

根据项目自行创建

四、项目中集成nacos配置中心
1、项目中添加 nacos-config 依赖。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2、在项目配置文件(application.properties)中设置 Nacos 相关信息。
spring: config: import: nacos:aicloud cloud: nacos: config: username: nacos password: nacos context-path: /nacos namespace: public server-addr: localhost:8848 group: DEFAULT_GROUP file-extension: yaml
使用nacos-config之后,你的业务配置就能搬到nacos配置中心去了,本地的配置也简单明了。
可以写一个demo测试一下,看下能否请求到nacos上的配置。
@RestController @RefreshScope public class TestController { @Value("${mykey}") private String myKey; @RequestMapping("/read") public String read(){ return myKey; } }
3、某个配置可能你会变化,那使用@RefreshScope 实现配置的读取和自动更新。
添加了@refreshScope 注解修饰的内容,当nacos那边更新了配置,会立即更新到代码中;但默认是不用最新的,因为这个nacos配置是采用懒加载的,第一次加载到缓存代码中,后面便每次都用这个,只有你主动去触发让它重新加载,才会更新,那什么时候会触发呢,比如加了@refreshScope,比如重启了服务,就会去重新获取
通常nacos的配置是不用最新的配置,这样是保证了效率,而这效率会伴随着牺牲一定的灵活性(此处指的就是实时的准确性)
以上内容纯属学习使用~
浙公网安备 33010602011771号