Nacos.03.的数据持久化

x33g5p2x  于2021-09-19 转载在 其他  
字(1.8k)|赞(0)|评价(0)|浏览(351)

前言

我们前面是将Nacos安装在单独的一台服务器中作为独立的服务对外提供服务的。每次我们重新启动Nacos服务的时候(甚至是关机重启)发现我们以前自己写的配置文件还在,这是因为Nacos本身为我们提供了数据(配置文件)的持久化。

Nacos本身提供了一个内嵌的数据库–derby。我们写入到Nacos的配置文件其实就是被持久化到了这个数据库中,具体的位置在下图所示的位置

但是啊,官网说在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力(但也仅仅只支持mysql,mysql的版本必须是5.6.5+)

数据持久化到mysql

Nacos官网为我们提供了将数据持久化到MySQL的具体步骤:

1.准备工作

我们上面说了Nacos只支持MySQL,而且是5.6.5+的版本。这里我们采用的数据库版本号是5.7.x,具体的安装教程参考文章
MySQL–03、CentOS7下安装MySQL5.7

2.nacos-mysql.sql

2.1 新建数据库

启动我们的MySQL5.7虚拟机,使用SQLyog连接我们的MySQL,创建数据库nacos

2.2 拷贝nacos-mysql.sql

nacos-mysql.sql是数据库的初始化文件,他的位置在nacos的conf里面,如下图:

或者直接解压我们前面下载的nacos-server-1.4.2.tar.gz,在conf目录下面直接找到nacos-mysql.sql,如下图:

2.3 初始化数据库

我们在SQLyog中直接将上面的nacos-mysql.sql导入到我们第一步新建的数据库nacos中,如下图

3.application.properties

我们进入到nacos的conf目录,可以看到application.properties文件。由此也可以看到nacos是一个springboot项目

执行命令vim application.properties,参照以下内容修改配置文件。修改完毕后esc->:wq!保存退出

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://数据库ip:3306/数据库名称?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=用户名
db.password=密码

4.重启nacos

我们重新启动nacos,然后浏览器输入http://192.168.8.120:8848/nacos发现我们之前的配置文件已经没有了;重新启动config client发现已经无法启动(没有读取到配置文件的原因)

我们之前的配置文件是默认持久化到nacos的内嵌数据库中的,现在我们重新设置了持久化的数据库mysql,但是mysql中尚没有配置文件导致无法读取到。

5.新增配置文件

我们按照文章03.Nacos组件之统一配置中心再次新增配置文件,如下图(新的配置文件会被自动持久化到mysql数据库)

5.1 新增命名空间

如下图所示,我们首先新增一个STUDY的命名空间,随后我们的配置文件都放在该命名空间下面

命名空间ID已经发生改变了,需要将02.springcloud_alibaba_config_client的配置文件bootstrap.properties中的命名空间换成上图中的新生成的ID

5.2 新增配置

然后我们点击配置列表->STUDY命名空间->新增配置,进入到新增配置页面

configclient-dev.properties

configclient-prod.properties

6.测试

我们重新启动config client,可以发现这次是没有问题的,能够正常启动

然后我们浏览器访问http://localhost:8811/test/hello,可以正确访问到正式配置文件中配置的属性username的值,如下图

我们打开SQLyog,查看nacos中的config_info表数据,可以看到我们持久化到数据库中的配置文件信息,如下图

相关文章