Nacos使用的数据库
(Apache Derby),但在生产环境中通常建议。以实现高可用和持久化存储。
·
Nacos 默认使用内置的嵌入式数据库(Apache Derby),但在生产环境中通常建议外接 MySQL 以实现高可用和持久化存储。以下是详细说明:
1. Nacos 的存储模式
Nacos 支持两种数据存储方式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 内置 Derby | 默认配置,数据存储在本地文件(${nacos.home}/data/derby-data) |
开发/测试环境(单机部署) |
| 外接 MySQL | 需手动初始化数据库,Nacos 服务端连接外部 MySQL 集群 | 生产环境(高可用需求) |
2. 生产环境为何推荐 MySQL?
- 数据持久化:Derby 是单机嵌入式数据库,宕机可能导致数据丢失;MySQL 支持集群化部署。
- 多节点共享:Nacos 集群模式下,所有节点需访问同一数据库以保证数据一致性。
- 性能与扩展性:MySQL 更适合高并发读写场景。
3. 如何配置 MySQL 存储?
步骤 1:初始化数据库
- 创建数据库(如
nacos_config),执行 Nacos 提供的 SQL 脚本:- 脚本路径:
${nacos.home}/conf/nacos-mysql.sql - 脚本内容:创建
config_info、users等核心表。
- 脚本路径:
步骤 2:修改 Nacos 配置
编辑 ${nacos.home}/conf/application.properties,添加 MySQL 连接信息:
# 数据源类型(必须显式配置)
spring.datasource.platform=mysql
# MySQL 连接信息(示例)
db.url.0=jdbc:mysql://mysql-host:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user.0=root
db.password.0=yourpassword
# 若需多数据源(主从),可配置 db.url.1、db.user.1 等
步骤 3:重启 Nacos 服务
sh ${nacos.home}/bin/shutdown.sh
sh ${nacos.home}/bin/startup.sh
4. 注意事项
- 版本兼容性:Nacos 2.x 推荐 MySQL 5.7+ 或 8.0+,需确保 JDBC 驱动匹配。
- 权限要求:MySQL 用户需具备建表、读写权限。
- 微服务 MySQL 隔离:
- Nacos 的 MySQL 是独立部署的,与业务微服务的数据库(如订单库、用户库)物理隔离。
- 微服务通过 Nacos 客户端获取配置,不直接访问 Nacos 的数据库。
5. 常见问题
Q:Nacos 是否必须依赖 MySQL?
- 否。开发环境可用内置 Derby,但生产环境强烈建议 MySQL。
Q:Nacos 的 MySQL 挂了会怎样?
- 客户端缓存:Nacos 客户端会缓存最后一次读取的配置,短期内服务不受影响。
- 服务端不可用:无法动态推送新配置,但已有配置仍有效。
Q:能否用其他数据库(如 PostgreSQL)?
- 官方不支持。Nacos 仅适配 MySQL,如需其他数据库需二次开发。
总结
- 默认:Nacos 使用 Derby(适合开发)。
- 生产:必须外接 MySQL(集群化部署),与业务数据库分离。
- 微服务:通过 Nacos 客户端 API 获取配置,不直接依赖 Nacos 的存储层。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)