【Nacos】集群搭建过程
- 【一】环境准备
- 【二】mysql数据库初始化
- 【三】修改配置文件(三台节点全部要改,配置完全一样)
-
- 【1】application.properties
- 【2】cluster.conf(集群节点列表)
- [【3】JVM 参数(可选,生产调优)](#【3】JVM 参数(可选,生产调优))
- 【四】启动集群(三台机器分别执行)
- 【五】验证集群
- [【六】六、Nginx 负载均衡(生产推荐)](#【六】六、Nginx 负载均衡(生产推荐))
集群建议奇数节点(3/5),Raft 协议需要多数派;所有节点版本必须完全一致;生产环境必须使用外部 MySQL,不要用内置 Derby 数据库。
【一】环境准备
JDK:JDK8 或 JDK17
MySQL:5.6.5+ / 8.0,所有 Nacos 节点共用同一套 MySQL
3 台服务器示例 IP:
node1:192.168.1.101
node2:192.168.1.102
node3:192.168.1.103
开放防火墙端口(全部节点)Nacos
| 端口 | 作用 |
|---|---|
| 8848 | http 客户端端口 |
| 9848 | gRPC 客户端端口(2.x 必须) |
| 9849 | 节点间 gRPC 同步端口 |
| 7848 | Raft 集群通信端口 |
下载 nacos 安装包,三台机器全部解压
bash
tar -zxvf nacos-server-2.3.2.tar.gz -C /usr/local/
cd /usr/local/nacos
【二】mysql数据库初始化
创建数据库 nacos_config
sql
CREATE DATABASE nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
执行 nacos 自带初始化脚本 conf/mysql-schema.sql
bash
mysql -uroot -p nacos_config < /usr/local/nacos/conf/mysql-schema.sql
【三】修改配置文件(三台节点全部要改,配置完全一样)
【1】application.properties
conf/application.properties,修改数据库部分,注释掉 derby 相关配置
bash
server.port=8848
# 使用mysql,关闭内置derby
spring.sql.init.platform=mysql
# 数据库数量,单套mysql填1
db.num=1
db.url.0=jdbc:mysql://192.168.1.200:3306/nacos_config?characterEncoding=utf8&connectTimeout=3000&socketTimeout=6000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
db.user.0=root
db.password.0=你的mysql密码
# 开启鉴权(生产建议开启)
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos
【2】cluster.conf(集群节点列表)
复制模板生成集群配置
bash
cd conf
cp cluster.conf.example cluster.conf
vim cluster.conf
写入全部集群节点 IP: 端口,三台机器该文件内容完全相同,不能写 127.0.0.1/localhost
bash
192.168.1.101:8848
192.168.1.102:8848
192.168.1.103:8848
【3】JVM 参数(可选,生产调优)
conf/nacos-env.sh,根据机器内存调整,测试环境最小 1G
bash
export JAVA_OPT="${JAVA_OPT} -Xms1g -Xmx1g -Xmn512m"
【四】启动集群(三台机器分别执行)
必须指定 -m cluster 集群模式启动,默认是单机 standalone 模式
bash
cd /usr/local/nacos/bin
sh startup.sh -m cluster
查看启动日志
bash
tail -f /usr/local/nacos/logs/start.out
tail -f /usr/local/nacos/logs/nacos.log
【五】验证集群
(1)访问控制台,任意节点地址:http://192.168.1.101:8848/nacos
默认账号密码 nacos/nacos
(2)进入控制台 → 集群管理 → 节点列表,能看到 3 个节点,状态UP代表集群组建成功,会自动选出 Leader、Follower。
(3)测试:在其中一个节点新增配置,刷新另外节点,配置同步,代表集群正常。
如果节点显示 DOWN:检查防火墙端口、cluster.conf 的 IP 是否内网真实 IP、数据库是否连通、版本是否一致。
【六】六、Nginx 负载均衡(生产推荐)
客户端不直接访问单个 nacos 节点,通过 nginx 做负载均衡,gRPC 需要 TCP 转发,不能只做 http 代理Nacos。
bash
stream {
upstream nacos-cluster {
server 192.168.1.101:8848;
server 192.168.1.102:8848;
server 192.168.1.103:8848;
}
upstream nacos-grpc {
server 192.168.1.101:9848;
server 192.168.1.102:9848;
server 192.168.1.103:9848;
}
server {
listen 8848;
proxy_pass nacos-cluster;
}
server {
listen 9848;
proxy_pass nacos-grpc;
}
}
客户端连接地址填写 nginx 的 IP:8848 即可。