>>分享孙卫琴的Java技术专稿和著作 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 8395 个阅读者 刷新本主题
 * 贴子主题:  【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 重新编辑]
  Java面向对象编程-->Java语言中的修饰符
  JavaWeb开发-->Web运作原理(Ⅳ)
  JSP与Hibernate开发-->Spring、JPA与Hibernate的整合
  Java网络编程-->Java网络编程入门
  精通Spring-->虚拟DOM和render()函数
  Vue3开发-->创建综合购物网站应用
  【Vue.js技术专题】Vue组件的命名规则
  【Spring Cloud Alibaba专题】@SentinelResource注解的用法
  【Spring专题】用AOP和SLF4J输出日志的范例
  【Vue专题】Vue3的计算属性实用范例:实现购物车
  【持久化专题】映射对象标识符的基本原理
  【持久化专题】@Enumerated注解映射枚举类型
  【持久化专题】Spring与Hibernate与JPA的整合
  【Java网络编程专题】通过JDBC API调用存储过程
  【持久化专题】比较JPA的EntityManager接口与Hibernate的Ses...
  【JavaWeb专题】Tomcat与IIS集成详解
  IT技术书写作技巧分享:慎用概念和术语
  【JavaWeb专题】选择32位或64位JDK或者Apache HTTP服务器的安...
  【Java基础编程专题】用内部类实现回调
  【Java基础编程专题】Java基本类型和引用类型的三个区别
  【Java基础编程专题】Java继承的利弊和使用原则
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。