修改Nacos持久化配置
Nacos 默认的落盘方式是嵌入式数据库 Derby,Nacos 的登录信息、服务元数据、配置中心的数据、权限控制的配置信息都会存储在这里。为了方便后期优化和管理,通常会选择一个外部的数据库。
目前 Nacos 官方推荐的外部数据库方案为 MySQL,其官方支持比较友好,想要替换为 MySQL 数据库,只需要修改几行配置文件。如果想用其他数据库,可能需要自行修改 Nacos 源码,这里就不推荐了。未来 Nacos 可能会支持更多的数据库,请读者耐心等待吧!
打开 conf 目录下的 application.properties 文件,这是 Nacos Server 启动和运行的核心配置文件。图 6-5 显示了 Nacos Server 的部分默认配置项,包括 contextPath、port 和数据库方案。
在这个文件中可以修改 Nacos 持久化配置,主要有三处内容需要修改。
-
数据库方案:
spring.datasource.platform=mysql这行配置默认情况下是被注释的,删除这行注释,指定数据库方案为 MySQL。 -
数据库的数量:删除
db.num=1这行注释。 -
JDBC 连接信息:将
db.url.0、db.user.0和db.password.0这三项修改为自己的数据库连接信息即可。
修改完数据库配置项之后,接下来需要到 MySQL 数据库中创建 Nacos 需要的数据库 Schema 和数据库表。
先创建数据库。
启动并登录 MySQL 数据库,创建名称为 newbee_nacos_config(可以是任意名称,自行定义即可)的数据库,命令如下:
CREATE SCHEMA 'newbee nacos config' DEFAULT CHARACTER SET utf8;
然后导入 nacos-mysql.sql 文件。
该文件在 Nacos 安装包中的 conf 目录下,如图 6-6 所示。
找到 nacos-mysql.sql 文件,直接将其导入刚刚创建的 newbee_nacos_config 数据库。导入成功后就能够看到 Nacos Server 所需的表了,如图 6-7 所示,共 12 张表。
除修改 Nacos 的数据库存储方案外,还可以在 application.properties 文件中修改 Nacos 的启动端口。比如,笔者将 Nacos 的启动端口修改为 17748,最终的配置文件如下:
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=17748
######################## Network Related Configurations ########################
### If I prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false
### Specify local server's IP:
# nacos.inetutils.ip-address=
######################## 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://localhost:3006/newbee_nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
...
### 省略部分内容
修改完成后,重启 Nacos Server,命令如下:
# 先关闭
./shutdown.sh
# 再启动
./startup.sh -m standalone
此时,启动后的日志输出内容如下:
第一次启动 Nacos 时使用的是默认数据库,在启动日志中可以看到 use embedded storage。修改为 MySQL 后,日志中就已经体现出来了,此时的日志内容为 use external storage,而且端口号也改为 17748 了。
进入 Nacos 控制台,一切正常,表示修改成功。
戏台已搭好,好戏就要开场了。接下来,笔者将结合实际的编码讲解服务之间是如何通过 Nacos 实现服务注册、服务发现和服务通信的。