1.前言
在上一篇文章,我们实现了基于nacos做分布式配置中心,实施的存储、更新我们的配置文件数据,在使用以往的一些配置中心时,服务重启或者注册中心重启后,配置文件数据将会丢失,这种情况是因为将数据储存在JVM的内存当中,当JVM不再提供运行时,数据也会相应的丢失,一些开源框架默认将数据存储在JVM内存中的还挺多的,那么nacos又是存储在哪里呢?
架构技术选型
- 核心框架 Spring Boot
- SOA Spring Cloud
- 安全框架 Spring Security Oauth2
- 注册中心/配置中心 Nacos 集群部署
- 网关 Spring Cloud Gateway 部署多套,使用nginx负载
- 链路监控 Skywalking
- 流量控制、熔断降级 Sentinel
- 数据库 Mysql
- 分布式事务 Seata
- 定时调度 xxl-job
- 缓存 Redis
- MQ RocketMq
- 持久框架 Mybatis Plus
- 搜索引擎 ElasticSearch
- 需要架构源码的朋友可以看我个人简介联系我
2.nacos默认存储存储方式
2.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.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、用户名和密码。
再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql ,这一内容在下一篇讲解。
文档参考Nacos: Nacos支持三种部署模式
3.nacos默认的存储方式
3.1.默认存在Derby内嵌数据库中
找到nacos目录下的datas目录,你会发现有个derby-data文件目录,数据默认是存储在这理,但是不能可视化,不过可以通过IDEA工具看到
3.2.使用IDEA连接Derby查看数据
注意: nacos-server一定要停止,不要开启、否则连不上
下载驱动连接Derby
账号和密码: nacos/nacos
这里面就是存储的nacos分布式配置中心的配置文件数据。