Nacos 数据外部化

在上章节我们通过调用 Nacos 的 Open API 实现了服务注册、发布配置,如下图:

Nacos 数据外部化

那么,这些数据 Nacos 保存在哪里的呢?Nacos 默认情况下将数据保存在 Apache Derby 嵌入式数据库中,如下图:

Nacos 数据外部化

什么是 Apache Derby?

Apache Derby(以前称为 IBM Cloudscape)是一个基于 Java 的关系型数据库管理系统(RDBMS),它是一个完全的事务性、嵌入式数据库引擎。Derby 是一个开源项目,由Apache 软件基金会进行维护和开发。

Apache Derby 具有以下特点:

  • 嵌入式数据库:Derby 可以作为一个嵌入式数据库引擎,可以直接嵌入到 Java 应用程序中,不需要独立的数据库服务器。

  • 轻量级:Derby 的核心引擎非常小巧,占用资源少,适合于轻量级的应用程序。

  • 100% Java:Derby 完全由 Java 编写,可以在任何支持 Java 的平台上运行。

  • 标准兼容:Derby 遵循 SQL 标准,支持常见的 SQL 操作和语法。

  • ACID事务:Derby 支持原子性、一致性、隔离性和持久性(ACID)的事务处理,保证数据的完整性和一致性。

  • 多用户支持:Derby 支持多个并发用户同时访问数据库,提供了基于锁和 MVCC(多版本并发控制)的并发控制机制。

  • 内存数据库:Derby 可以将整个数据库加载到内存中,提供了快速的数据访问和查询性能。

  • 原生支持网络访问:Derby 可以作为一个独立的数据库服务器运行,通过网络提供数据库访问服务。

Apache Derby 可以用于各种应用场景,从小型嵌入式应用到中等规模的企业应用都适用。它提供了丰富的功能和工具,如 SQL 支持、事务管理、安全性、备份和恢复等,可以满足不同应用的需求。此外,Derby 还可以与其他 Java 技术和框架集成,如 Hibernate、Spring 等,提供更加便捷和高效的开发体验。

Nacos 数据 MySQL 化

在生产环境中,我们可能并不想将 Nacos 中的配置信息放置到默认的嵌入式 Derby 数据库,而是想将数据外部放到 MySQL 数据中,这样更安全,更高效。下面将介绍怎样配置 Nacos 将数据放到 MySQL。

准备 MySQL 服务

准备一个 MySQL 服务,笔者这里采用 MySQL 5.7.24 版本。关于如何安装 MySQL 这里不再赘述。

创建 nacos-config 数据库

在 MySQL 中创建 nacos-config 数据库,如下图:

Nacos 数据外部化

执行数据库脚本

执行 Nacos 提供的 SQL 脚本,脚本位于 Nacos 主目录的 config/mysql-schema.sql 文件,执行方式如下图:

Nacos 数据外部化

点击 ”Start“ 开始执行,执行完成如下图:

Nacos 数据外部化

此时,刷新数据库,可以看到创建了很多表,如下图:

Nacos 数据外部化

配置 nacos

打开 Nacos 主目录中 config/application.properties 配置文件,修改配置,如下:

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
# spring.datasource.platform=mysql
# 放开注释,指定为 mysql
spring.sql.init.platform=mysql

### Count of DB:
# 设置数据库数量
db.num=1

### Connect URL of DB:
# 指定数据库信息,如:用户名、密码等等
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=aaaaaa
...

配置完成后,记得重启 Nacos 服务。

服务验证

使用 curl 命令发起配置发布请求,如下:

C:\Users\Administrator>curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
true

访问 Nacos 页面查看数据,如下图:

Nacos 数据外部化

继续查看数据库表,如下图:

Nacos 数据外部化

 

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号