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的配置是不用最新的配置,这样是保证了效率,而这效率会伴随着牺牲一定的灵活性(此处指的就是实时的准确性)

 

 

以上内容纯属学习使用~

 

posted @ 2025-06-24 20:25  多多指教~  阅读(1109)  评论(0)    收藏  举报