在前面介绍了 Nacos快速入门,本节将介绍 Nacos 服务端集群化配置与搭建。
在生产环境中,Nacos 服务端都是集群部署,不可能采用单机模式运行(单机就没法高可用...)。因此,在这里记录一下 Nacos 集群配置与搭建过程。
一、Nacos Server 实例
为了方便起见,在一台服务器上通过设置不同端口号来构建不同的 Nacos Server 实例。下面会启动3个 Naocs 实例,其端口号分别为 8847、8848、8849。
(1) 下载/解压
tar -zxvf nacos-server-1.4.0.tar.gz -C nacos_8847
tar -zxvf nacos-server-1.4.0.tar.gz -C nacos_8848
tar -zxvf nacos-server-1.4.0.tar.gz -C nacos_8849
(2) 修改 application.properties 配置
在${NACOS_HOME}/conf
目录下包含如下文件:
- application.properties:Nacos 主配置文件(参考 SpringBoot 工程的主配置文件)
- application.properties.example:Nacos 主配置文件模板
- cluster.conf.example:集群相关配置
- nacos-logback.xml:日志相关配置
- nacos-mysql.sql:MySQL 数据库初始化脚本(集群模式)
- schema.sql:Derby 数据库初始化脚本(单机模式)
Nacos 默认ip为 127.0.0.1,默认 port 为 8848 (珠峰高度),因此,对于 nacos_8847 和 nacos_8849 实例需要修改其 ip 和 port,在 application.properties 修改配置如下:
# nacos_8847 实例
server.port=8847
nacos.inetutils.ip-address=192.168.33.10
# nacos_8848 实例
server.port=8848
nacos.inetutils.ip-address=192.168.33.10
# nacos_8849 实例
server.port=8849
nacos.inetutils.ip-address=192.168.33.10
二、集群配置
将cluster.conf.example
文件拷贝一份,然后重命名为cluster.conf
,在cluster.conf
中添加集群服务器的 ip 和 port,如下所示:
192.168.33.10:8847
192.168.33.10:8848
192.168.33.10:8849
上述配置在实例 nacos_8847、nacos_8848、nacos_8849 保持一致。
三、配置数据源
Nacos 默认采用嵌入式数据库 Derby 来进行数据的持久化,Derby 的优势是体积小,是轻量级的数据库。但是,Derby 支持的会话连接数较少,而且在集群模式下会存在数据一致性的问题。因此,在搭建 Nacos 集群环境时需要修改数据源为 MySQL (除了 Derby 外,目前,Nacos 只支持 MySQL,但是暂不支持8.0版本)。
(1) MySQL 初始化
- 首先,创建数据库
nacos_config
- 然后,运行
nacos-mysql.sql
即可完成 MySQL 数据库的初始化
(2) 配置数据源
在 application.properties 中修改数据源如下所示:
db.num=1
db.url.0=jdbc:mysql://192.168.10.33:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=naco
四、启动服务
进入nacos_${port}/bin
目录,分别执行sh startup.sh
命令来启动 3 个 Nacos 服务。
sh startup.sh
登录 Nacos 后台,在 "集群管理" -> "节点列表" 中可以看到如下效果: