Nacos持久化

博客介绍了Nacos持久化的原因。Nacos单机时宕机将导致所有服务宕机,采用集群又会出现数据不互通问题,各自使用derby数据库。因此,需引入第三方的Mysql数据库进行持久化,让所有Nacos读取该数据库以实现数据互通。

0. Nacos为什么要持久化?

  1. Nacos所处位置如果单机的话,宕机之后就等于所有的服务宕机
  2. 所以此时就需要进行集群,然而集群又出现了数据不互通,各自都独有自己derby
  3. 所以就需要引入第三方的 Mysql数据库 进行持久化数据,所有Nacos都去读取 Mysql数据库实现数据互通

1. 持久化

 1.1、 切换数据库(目前只支持mysql,版本要求:5.6.5+)
 	修改conf/application.properties文件,增加支持mysql数据源配置
### If use MySQL as datasource:
spring.datasource.platform=mysql

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

### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.112.120:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root
1.2.初始化数据库
	1.2.1 nacos安装包下conf 目录中将 **nacos-mysql.sql** 导入数据库即可建库建表

在这里插入图片描述

1.3.测试
	重启nacos测试nacos所有写到嵌入式数据库的数据是否都写到了mysql
Nacos持久化是构建可靠数据存储系统的重要环节,在微服务架构中对确保系统可靠性意义重大。Nacos作为阿里巴巴开源的服务发现和配置管理平台,具备强大的数据持久化能力[^1]。 在Nacos持久化发展历程方面,0.7版本之前,单机模式下nacos使用嵌入式数据库实现数据的存储,这使得观察数据存储的基本情况不太方便。到了0.7版本,Nacos增加了支持mysql数据源能力[^2]。 Nacos默认自带嵌入式数据库derby,每次创建一个Nacos实例就会有一个derby。当存在多个Nacos节点时,会出现数据一致性问题。因此,Nacos支持使用外部数据库(目前仅支持MySQL)进行统一数据管理[^3]。 在配置方面,若要将Nacos默认的derby切换为MySql,需要找到并执行相应的sql脚本。而在Docker环境下进行Nacos持久化配置,首先要验证nacos的配置服务是否正常,验证方法和操作步骤和《Docker下,两分钟极速体验Nacos配置中心》一致。在docker-compose.yml文件所在目录执行特定命令,即可启动所有容器[^2][4]。 另外,在服务端配置中,以sentinel实现nacos持久化为例,相关配置如下: ```yaml feign: sentinel: enabled: true # 开启feign的sentinel支持 spring: cloud: sentinel: datasource: flow: nacos: server-addr: localhost:8848 # nacos地址 dataId: orderservice-flow-rules #监听的nacos规则 groupId: SENTINEL_GROUP #nacos组 rule-type: flow # 还可以是:degrade、authority、param-flow transport: dashboard: localhost:8090 #sentinel域名 nacos: server-addr: localhost:8848 # nacos服务地址 ``` 上述配置展示了如何通过Nacos实现sentinel规则的持久化存储[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值