>>分享孙卫琴的Java技术专稿和著作 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 8396 个阅读者 刷新本主题
 * 贴子主题:  【Spring Cloud Alibaba专题】Nacos配置属性的持久化 回复文章 点赞(0)  收藏  
作者:sunweiqin    发表时间:2022-08-25 09:00:45     消息  查看  搜索  好友  邮件  复制  引用

本文参考孙卫琴,杜聚宾所创作的<<Spring Cloud Alibaba微服务开发宝典>>一书,即将出版

在Nacos服务器上创建了配置单元后,如果重启Nacos服务器,配置单元还存在吗?答案是,还存在的。Nacos服务器在运行时,会对配置单元的数据进行持久化,确保服务器重启后,还能获得原有的配置数据。

Nacos服务器对配置属性进行持久化有两种方式:
(1)默认情况下,Nacos服务器把配置属性保存到内嵌的Apache Derby数据库中。在Nacos服务器的data/derby-data目录下存放包含配置属性的文件。
(2)把配置属性保存到外部数据库中,目前支持MySQL数据库,将来可能会支持更多的外部数据库。

无论Nacos服务器以单机或集群方式运行,都支持内嵌的数据库和外部数据库。Nacos服务器使用外部MySQL数据库,有以下优点:
(1)便于在独立的主机上部署MySQL数据库,MySQL数据库与Nacos服务器无需运行在同一台主机上。
(2)可以方便地查看和维护MySQL数据库。

把Nacos服务器改为使用MySQL数据库作为配置属性的存储源,步骤如下。
(1)安装MySQL。MySQL的官方下载网址为:www.mysql.com。
(2)为Nacos服务器创建连接MySQL的用户名和口令。假定用户名为root,口令为1234。
(3)在MySQL中创建名为nacos_config的数据库,字符编码为UTF8,SQL命令如下:

create database nacos_config character set utf8;

(4)在nacos_config数据库中,运行Nacos服务器的conf/nacos-mysql.sql脚本,创建config_info等数据库表,这些表用于存储配置属性。
(5)修改Nacos服务器的conf/application.properties配置文件,设置连接MySQL数据源的信息:

spring.datasource.platform=mysql

db.num=1
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=Asia/Shanghai

db.user.0=root
db.password.0=1234

以上db.num属性表示数据源的个数,如果有两个数据源,可以按照以下方式配置:

db.num=2
db.url.0=……
db.user.0=root
db.password.0=1234

db.url.1=……
db.user.1=root
db.password.1=1234

在Nacos服务器的conf/application.properties配置文件的注释行中,已经提供了连接MySQL的参考代码。值得注意的是,参考代码的db.url.0属性中“127.0.0.1:3306/nacos”要改为“127.0.0.1:3306/nacos_config”,这样才能连接到在MySQL中创建的nacos_config数据库。
(6)启动Nacos服务器,会看到以下信息,表明使用外部数据源:

INFO Nacos started successfully in stand alone mode.
use external storage

再通过浏览器访问Nacos服务器的管理平台,参照4.1节创建Data ID为hello-config-service的配置单元。然后在MySQL中查看config_info表:
select * from config_info;

会看到在config_info表中增加了一条表示配置单元的记录,它的data_id字段的值为hello-config-service,group_id字段的值为DEFAULT_GROUP。



程序猿的技术大观园:www.javathinker.net

[这个贴子最后由 sunweiqin 在 2022-08-25 09:16:07 重新编辑]
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=4205&pages=4

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员