下文摘自孙卫琴的经典书籍《Spring Cloud Alibaba微服务开发零基础入门到实操》,介绍了在Spring Cloud Alibaba中把Nacos服务器上的配置属性持久化到MySQL数据库中。
阿云:“在Nacos服务器上创建了配置单元后,如果重启Nacos服务器,配置单元还存在吗?” 答主:“还存在的。Nacos服务器在运行时,会对配置单元的数据进行持久化,确保服务器重启后,还能获得原有的配置数据。”
Nacos服务器对配置属性进行持久化有两种方式: (1)默认情况下,Nacos服务器把配置属性保存到内嵌的Apache Derby数据库中。在Nacos服务器的data/derby-data目录下存放包含配置属性的文件。 (2)把配置属性保存到外部数据库中,目前支持MySQL数据库,将来可能会支持更多的外部数据库。
无论Nacos服务器以单机或集群方式运行,都支持内嵌的数据库和外部数据库。Nacos服务器使用外部MySQL数据库,有以下优点:
- 便于在独立的主机上部署MySQL数据库,MySQL数据库与Nacos服务器无需运行在同一台主机上。
- 可以方便地查看和维护MySQL数据库。
把Nacos服务器改为使用MySQL数据库作为配置属性的存储源,步骤如下。 (1)安装MySQL。MySQL的官方下载网址参见本文技术支持网页(www.javathinker.net/alibaba)的【链接7】。 (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。
想要循序渐进学习Spring Cloud微服务开发,强烈推荐看孙卫琴老师的经典著作《Spring Cloud Alibaba微服务开发零基础入门到实操》,还附赠121集配套视频课程,免费观看网址参见http://www.javathinker.net/alibaba
本书深入浅出地讲解了利用Spring Cloud Alibaba框架开发分布式微服务系统的技术,详细阐述了各种组件的用法,包括:注册和配置中心Nacos、负载均衡器LoadBalancer、远程调用组件OpenFeign、远程调用框架Dubbo、流量控制组件Sentinel、网关Gateway、链路追踪组件SkyWalking、消息中间件Stream和 RocketMQ、分布式事务管理框架Seata、分库分表中间件ShardingSphere、分布式缓存数据库Redis、分布式任务调度框架XXL-JOB。
本书以一位学习微服务开发的新手阿云向答主(本书作者)请教微服务开发技术为线索,激发读者主动探索知识的学习兴趣,把本来看似深奥复杂的分布式微服务系统如庖丁解牛般剖析得淋漓尽致,浅显易懂。本书不仅详细介绍各种技术的使用步骤,而且运用了许多生动形象的生活化的比喻,帮助读者理解这些技术的运作原理。
本书的范例很具有实用性,整合了Spring Boot、Spring Cloud Alibaba、Hibernate、Mybatis、DruidDataSource、HikariDataSource、lombox软件包、SLF4J等流行的框架或工具软件。
本书主要面向所有具有Java编程基础的开发人员和在校学生。对于不熟悉Java编程的读者,阅读本书,也能领略Spring Cloud Alibaba框架的基本用法和微服务开发的核心思想。本书还可作为高校和企业的微服务开发教材。
评论前必须登录!
注册