专栏
天翼云开发者社区

Derby数据库简介及其在Nacos中的应用

2023-06-28 09:50:10 177阅读

一、引言

Nacos作为微服务注册配置中心,需要存储用户创建的配置和永久实例等信息,需要有持久化方案。目前Nacos支持使用内嵌的Derby数据库和外部的MySQL数据库作为存储。当我们使用单机模式或者集群模式下使用默认存储(即使用startup.sh -p embedded启动)时,Nacos会使用内嵌的Derby数据库来存储数据。那么接下来简要介绍下Derby数据库。

二、Derby 数据库介绍

Apache Derby 是100% Java 编写的内存数据库,属于 Apache 的一个开源项目,并且是一个容易管理的关系数据库管理系统,Apache Derby 是一个与平台无关的数据库引擎,它以 Java 类库的形式对外提供服务。与其他难以部署的数据库不同, Derby 数据库体积小、安装非常简单,只需要将其 *.jar 文件复制到系统中并为用户的项目添加该 *.jar 文件即可。

三、运行模式

3.1 内嵌模式

Derby数据库与应用程序共享同一个JVM,通常由应用程序负责启动和停止,对除启动它的应用程序外的其它应用程序不可见,即其它应用程序不可访问它;Nacos主要使用此种模式来运行Derby数据库。

3.2 网络模式

Derby数据库独占一个JVM,做为服务器上的一个独立进程运行。在这种模式下,允许有多个应用程序来访问同一个Derby数据库。

四、 Derby 数据库的优缺点

  • Derby 定位是小型数据库 , 特别是嵌入式 . 支持的数据库小于 50GB, 对于小型网站 , 事务不复杂的应用, 使用它的还是很不错的 . 另外大型桌面应用也可以用它来保存配置和其他数据 , 可以做到与文件格式无关 ,因为都是访问数据库;
  • 功能层面: Derby 支持标准 SQL92, SQL1999, SQL2003, 支持临时表 , 索引 , 触发器 , 视图 , 存储过程 ,外键 , 约束 , 并行 , 事务 , 加密与安全等。只要有 JDK(>=1.3), 就可以运行 Derby;
  • 安全性: Derby 的安全性也做得很到位 , 包括用户鉴权和加密解密;
  • 性能: Derby 的性能也是不错的 . 在插入 100 万条记录时 , CPU 的占用率一直低于 40%, 平均每插一条记录耗时小于 0.3 毫秒,这对于满足桌面应用程序是绰绰有余的 . 但是比 Oracle 、 MySql 等专业数据库性能要低;

五、使用方法

5.1、安装Derby数据库

只需要从Derby官方网站下载Derby的zip或者tar包,解压就可以了。这里以db-derby-10.4.1.3-bin版本为例,解压后得到以下目录:

  • bin目录,包含了一些工具脚本和设备环境的脚本;
  • demo目录,包含了一些实例程序;
  • docs目录,包含了Derby的文档;
  • javadoc目录,包含了Derby的API文档;
  • lib目录,包含了Derby数据库的jar文件;
  • test目录,Derby的一些测试jar包;

5.2、使用ij脚本

5.2.1 运行内嵌模式的Derby数据库

建立连接:在命令行中找到bin目录,使用输入ij使用ij工具(或单击ij.bat后启动ij工具)。然后通过如下命令创建数据库,并与数据库创建连接

connect 'jdbc:derby:dedb;user=root;password=root;create=true';

SQL操作:与数据库连接上后,就可以开始执行SQL语句了,也可以通过run命令来执行sql文件:

run '/derby/demo/nacos_schema.sql';

最后通过exit来退出ij工具,你可以在当前你命令行下所在的目录中找到一个derby.log的日志文件,derby在其中记录的数据库启动、关闭的信息。

六、Nacos中Derby的应用

当我们使用单机模式或者集群模式下使用默认存储(即使用startup.sh -p embedded启动)时,Nacos会使用内嵌的Derby数据库来存储数据。服务启动后,在Nacos工作目录下data目录中生成derby-data目录

该目录即为derby的数据库工作目录,里面存储了derby数据库的所有信息

可以按照前文所述的方法,使用Derby自带的ij脚本连接内嵌模式运行的Derby数据库,可以看到NACOS逻辑库

该库中包含了Nacos用户侧信息,包含账号密码,名称空间,配置等。对于需要持久化的数据,Nacos会将其写入Derby数据库中。

 

最后,由于Derby是一个单体嵌入式数据库,Nacos各节点组成集群的时候,各自的存储是分离的,因此,需要由上层CP协议来保证数据一致性,这里会涉及到集群节点间的日志重放和同步等细节操作,我们会在后续的系列中进行深入解析。

 

  • 0
  • 0
  • 0
0 评论
0/1000
评论(0) 发表评论
廖****锋

廖****锋

10 篇文章 0 粉丝
关注

Derby数据库简介及其在Nacos中的应用

2023-06-28 09:50:10 177阅读

一、引言

Nacos作为微服务注册配置中心,需要存储用户创建的配置和永久实例等信息,需要有持久化方案。目前Nacos支持使用内嵌的Derby数据库和外部的MySQL数据库作为存储。当我们使用单机模式或者集群模式下使用默认存储(即使用startup.sh -p embedded启动)时,Nacos会使用内嵌的Derby数据库来存储数据。那么接下来简要介绍下Derby数据库。

二、Derby 数据库介绍

Apache Derby 是100% Java 编写的内存数据库,属于 Apache 的一个开源项目,并且是一个容易管理的关系数据库管理系统,Apache Derby 是一个与平台无关的数据库引擎,它以 Java 类库的形式对外提供服务。与其他难以部署的数据库不同, Derby 数据库体积小、安装非常简单,只需要将其 *.jar 文件复制到系统中并为用户的项目添加该 *.jar 文件即可。

三、运行模式

3.1 内嵌模式

Derby数据库与应用程序共享同一个JVM,通常由应用程序负责启动和停止,对除启动它的应用程序外的其它应用程序不可见,即其它应用程序不可访问它;Nacos主要使用此种模式来运行Derby数据库。

3.2 网络模式

Derby数据库独占一个JVM,做为服务器上的一个独立进程运行。在这种模式下,允许有多个应用程序来访问同一个Derby数据库。

四、 Derby 数据库的优缺点

  • Derby 定位是小型数据库 , 特别是嵌入式 . 支持的数据库小于 50GB, 对于小型网站 , 事务不复杂的应用, 使用它的还是很不错的 . 另外大型桌面应用也可以用它来保存配置和其他数据 , 可以做到与文件格式无关 ,因为都是访问数据库;
  • 功能层面: Derby 支持标准 SQL92, SQL1999, SQL2003, 支持临时表 , 索引 , 触发器 , 视图 , 存储过程 ,外键 , 约束 , 并行 , 事务 , 加密与安全等。只要有 JDK(>=1.3), 就可以运行 Derby;
  • 安全性: Derby 的安全性也做得很到位 , 包括用户鉴权和加密解密;
  • 性能: Derby 的性能也是不错的 . 在插入 100 万条记录时 , CPU 的占用率一直低于 40%, 平均每插一条记录耗时小于 0.3 毫秒,这对于满足桌面应用程序是绰绰有余的 . 但是比 Oracle 、 MySql 等专业数据库性能要低;

五、使用方法

5.1、安装Derby数据库

只需要从Derby官方网站下载Derby的zip或者tar包,解压就可以了。这里以db-derby-10.4.1.3-bin版本为例,解压后得到以下目录:

  • bin目录,包含了一些工具脚本和设备环境的脚本;
  • demo目录,包含了一些实例程序;
  • docs目录,包含了Derby的文档;
  • javadoc目录,包含了Derby的API文档;
  • lib目录,包含了Derby数据库的jar文件;
  • test目录,Derby的一些测试jar包;

5.2、使用ij脚本

5.2.1 运行内嵌模式的Derby数据库

建立连接:在命令行中找到bin目录,使用输入ij使用ij工具(或单击ij.bat后启动ij工具)。然后通过如下命令创建数据库,并与数据库创建连接

connect 'jdbc:derby:dedb;user=root;password=root;create=true';

SQL操作:与数据库连接上后,就可以开始执行SQL语句了,也可以通过run命令来执行sql文件:

run '/derby/demo/nacos_schema.sql';

最后通过exit来退出ij工具,你可以在当前你命令行下所在的目录中找到一个derby.log的日志文件,derby在其中记录的数据库启动、关闭的信息。

六、Nacos中Derby的应用

当我们使用单机模式或者集群模式下使用默认存储(即使用startup.sh -p embedded启动)时,Nacos会使用内嵌的Derby数据库来存储数据。服务启动后,在Nacos工作目录下data目录中生成derby-data目录

该目录即为derby的数据库工作目录,里面存储了derby数据库的所有信息

可以按照前文所述的方法,使用Derby自带的ij脚本连接内嵌模式运行的Derby数据库,可以看到NACOS逻辑库

该库中包含了Nacos用户侧信息,包含账号密码,名称空间,配置等。对于需要持久化的数据,Nacos会将其写入Derby数据库中。

 

最后,由于Derby是一个单体嵌入式数据库,Nacos各节点组成集群的时候,各自的存储是分离的,因此,需要由上层CP协议来保证数据一致性,这里会涉及到集群节点间的日志重放和同步等细节操作,我们会在后续的系列中进行深入解析。

 

文章来自专栏

微服务&中间件

10 篇文章 2 订阅
0 评论
0/1000
评论(0) 发表评论
  • 0
    点赞
  • 0
    收藏
  • 0
    评论