tulip notes
首页
  • 学习笔记

    • 《Vue》
  • 踩坑日记

    • JavaScript
  • MQ
  • Nginx
  • IdentityServer
  • Redis
  • Linux
  • Java
  • SpringBoot
  • SpringCloud
  • MySql
  • docker
  • 算法与设计模式
  • 踩坑与提升
  • Git
  • GitHub技巧
  • Mac
  • 网络
  • 项目构建合集
  • 一些技巧
  • 面试
  • 一些杂货
  • 友情链接
  • 项目发布
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Star-Lord

希望一天成为大师的学徒
首页
  • 学习笔记

    • 《Vue》
  • 踩坑日记

    • JavaScript
  • MQ
  • Nginx
  • IdentityServer
  • Redis
  • Linux
  • Java
  • SpringBoot
  • SpringCloud
  • MySql
  • docker
  • 算法与设计模式
  • 踩坑与提升
  • Git
  • GitHub技巧
  • Mac
  • 网络
  • 项目构建合集
  • 一些技巧
  • 面试
  • 一些杂货
  • 友情链接
  • 项目发布
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • SCAlibaba-Nacos

    • 使用Nacos实现服务注册与发现
    • 几种不同的服务消费方式
    • 使用Nacos实现配置管理
    • nacos实现数据持久化
      • 为什么要数据持久化
      • 实现数据持久化
        • 1.初始化数据库
        • 2.修改配置文件
    • Nacos配置管理-补充
  • SCAlibaba-Sentinel

  • 负载均衡与服务调用

  • 服务熔断与降级

  • 服务链路追踪与网关

  • 分布式实战与细节

  • 其他

  • 《SpringCloud》笔记
  • SCAlibaba-Nacos
EffectTang
2023-10-18
目录

nacos实现数据持久化

# nacos实现数据持久化

# 为什么要数据持久化

Nacos 作为动态服务发现、配置管理和服务治理平台,需要保证服务的实时注册和发现。如果某个服务节点突然出现故障或不可用,该节点注册的信息和状态将会丢失,同时与其相关的其他节点也会受到影响,从而导致整个服务系统的不稳定。

通过实现数据持久化,Nacos 可以将服务的注册和发现信息存储在持久化存储介质中,即使节点出现故障或重启,服务的注册和发现信息也不会丢失,保证服务的实时性和可用性。

不仅如此,数据持久化还可以提高 Nacos 的可扩展性和可维护性。随着业务量的增长和服务规模的扩大,Nacos 集群中的节点数量会不断增加,这时候如果使用本地文件持久化存储配置信息可能会出现性能瓶颈。而使用数据库持久化可以更好地支持高并发、共享访问以及更好的可扩展性,使得 Nacos 集群可以轻松应对大规模的业务需求。

总结:Nacos 实现数据持久化主要是为了解决服务注册和发现过程中的数据丢失问题,确保服务的可用性和稳定性。

Nacos 默认将配置信息持久化到本地文件中。它使用了一个基于 Lua 的文件系统来实现持久化,可以保证配置信息的实时性和一致性。

Nacos默认数据存储在内嵌数据库Derby中,不属于生产可用的数据库。

# 实现数据持久化

# 1.初始化数据库

数据库初始化文件:nacos-mysql.sql,该文件可以在Nacos程序包下的conf目录下获得。执行完成后可以得到如下图所示的表结构:

image-20231018205622754

# 2.修改配置文件

改conf/application.properties文件,增加支持MySQL数据源配置,添加(目前只支持mysql)数据源的url、用户名和密码。配置样例如下:

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos
1
2
3
4
5
6
7
8
9
10
11

到这里,Nacos数据存储到MySQL的配置就完成了,可以尝试继续用单机模式启动Nacos。继续之前的一些操作,这时可以看到数据会写到我们设置的数据库中。

比如我们在新增了一个配置(新增一个Data Id)后,即可在config_info该表下,看到多了一条数据

上次更新: 2025/05/21, 15:29:11
使用Nacos实现配置管理
Nacos配置管理-补充

← 使用Nacos实现配置管理 Nacos配置管理-补充→

最近更新
01
springboot中发送http
06-17
02
集成Redis及注意事项
06-08
03
Vue项目发布
06-04
更多文章>
Theme by Vdoing | Copyright © 2023-2025 EffectTang
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式