简单使用nacos作为统一配置中心及用mysql持久化

文章介绍了如何在SpringCloud项目中添加Nacos依赖,用于注册中心和配置中心。详细说明了dataid的命名规则,并展示了如何创建和读取配置文件。此外,文章还讨论了Nacos配置文件的奇怪现象,以及如何将Nacos的数据源切换到MySQL进行持久化存储,包括创建数据库、导入SQL和修改配置文件的过程。
摘要由CSDN通过智能技术生成

需要的依赖

<!--nacos注册中心依赖-->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

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

首先我们启动nacos并访问网页,在配置管理页面点击加号新建一个配置

这里我们说一下data id的取名规则, nacos官网的推荐为${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file.extension}

也就是 服务名-开发环境.文件后缀

举个例子,服务名为config-test,开发环境为dev,文件后缀为properties

那么我们的data id取名为 config-test-dev.proerties

 

 

 新建一个项目读取该配置文件,其中我们配置中对应的三个值和官方推荐的命名规则相对应,那么nacos就能自动帮我们拼接完整的data id并读取其中的值

新建一个controller测试属性读取,@RefreshScope表示自动刷新,即nacos配置中心修改后程序会动态读取,不加则不会刷新

@RestController
@RefreshScope
public class ConfigController {
    @Value("${config.test}")
    String configTest = null;

    @GetMapping("/configTest")
    public String config() {
        return "从nacos配置中心取到的属性为"+configTest;
    }
}

访问该测试类,成功读取nacos配置中心的属性

我们去naocs中更新属性值,并再次访问,可以发现值被动态读取了

 

此处说几个我发现的nacos读取配置文件的奇怪现象,首先是不管你nacos中dataid取什么值

,只要你项目配置文件中spring.application.name和dataid相同,前缀,后缀,开发环境什么的你乱写都可以给你找到并成功读取,还有就是只要你的应用名和官方命名规则的前缀相同,dev和nacos中dataid里面dev那一部分相同(我只测试了properties文件),也是前缀后缀dataid乱写都可以

最后我们介绍一下nacos的持久化

nacos其实是自带了一个数据库的,叫做derby,也就是说nacos默认就支持持久化的,我们关闭naocs后重启服务配置文件依旧还在,其数据就保存在datq文件夹下 

但是derby数据不便于我们观察和维护,因此我们可以使用mysql作为nacos的数据源

此处我去服务器中用docker启动一个mysql服务并挂载数据

docker run -p 3306:3306 --name mysql -v /root/dev/docker/mysql/conf:/etc/mysql/conf.d -v /root/dev/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d

 新建一个数据,数据库名随意,字符集选择utf8

 打开nacos的文件夹,找到nacos-mysql.sql并运行

 

还是conf目录,点击配置文件打开修改

 修改前

 修改后

 修改并保存后重启nacos,由于我们持久化数据源变成了mysql,而mysql中并没有数据,因此我们之前配置的配置文件都会消失

我们新建一个配置文件

 可以发现这个时候mysql中也多了一条数据

 此时我们再重启naocs会发现数据依然还在

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值