一、前言
在上一篇文章: Spring Cloud Alibaba教程(三):使用Nacos实现分布式配置中心 中,我们实现了基于nacos
做分布式配置中心,实施的存储、更新我们的配置文件数据,在使用以往的一些配置中心时,服务重启或者注册中心重启后,配置文件数据将会丢失,这种情况是因为将数据储存在JVM
的内存当中,当JVM
不再提供运行时,数据也会相应的丢失,一些开源框架默认将数据存储在JVM内存
中的还挺多的,那么nacos
又是存储在哪里呢?
二、nacos默认存储存储方式
1.了解nacos默认储存
聪明的你不难发现,无论你是在重启服务还是重启nacos-server
配置中心,你之前所存储的配置文件信息都不会丢失,这是因为alibaba
默认将nacos-server
作为分布式配置中心的数据存储到了一个叫做derby
的内嵌数据库到Java
应用程序中了,百度百科了解下derby
,你会知道Derby
是什么:
Derby是一个理想的,并且开源的,100% Java编写的,容易管理的关系数据库管理系统,它可以和一些商业产品的特性进行交付。Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。Cognos 8 BI的Content Store默认就是使用的Derby数据库,可以在Cognos8的安装目录下看到一个叫derby10.1.2.1的目录,就是内嵌的10.1.2.1 版本的derby。
另外,除了上面提到的使用nacos
做分布式配置中心时,数据除了存储到一个内嵌到Java
应用程序derby
数据库中之外,nacos
官方还提供了存储到MySQL
中,在1.2.1及之前的版本,支持的只有Mysql
,暂不支持其他关系型数据库。官方文档介绍如下:
2.单机模式支持mysql
在0.7
版本之前,在单机模式时nacos
使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7
版本增加了支持mysql
数据源能力,具体的操作步骤:
- 1.安装数据库,版本要求:5.6.5+
- 2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
- 3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow
再以单机模式启动nacos
,nacos
所有写嵌入式数据库的数据都写到了mysql
,这一内容在下一篇博客讲解。
文档参考Nacos: Nacos支持三种部署模式
三、nacos默认的存储方式
1. 默认存在Derby
内嵌数据库中
找到nacos
目录下的datas
目录,你会发现有个derby-data
文件目录,数据默认是存储在这理,但是不能可视化,不过可以通过IDEA工具看到
2. 使用IDEA连接Derby
查看数据
注意: nacos-server一定要停止,不要开启、不要开启、不要开启,否则连不上
- 下载驱动连接Derby
- 账号和密码: nacos/nacos
- 查看数据库表
这里面就是存储的nacos
分布式配置中心的配置文件数据。
四、Spring Cloud Alibaba教程
下一篇: Spring Cloud Alibaba教程(五):将Nacos配置中心持久化到MySQL