9.10.1 生产环境部署架构与容量规划
生产环境部署架构与容量规划需围绕业务规模、可用性目标、网络与存储能力协同设计。单集群建议不少于3节点以满足一致性与选主需求,节点角色建议同构部署,避免硬件差异导致选举抖动。跨机房部署需评估网络时延与带宽,同城低时延优先;跨地域建议采用多集群+异地容灾。
容量规划需基于实例数、配置项数量、请求QPS与峰值倍率估算。关键指标包括注册实例总数、心跳频率、配置发布频率与历史版本留存。建议在峰值基础上预留30%~50%冗余。持久化存储建议SSD,磁盘IO需满足配置变更与数据落盘写入峰值。
容量估算示例(含命令解释)
1) 估算心跳QPS(示例:实例数=20000,心跳周期=10s)
心跳QPS = 20000 / 10 = 2000 QPS
峰值QPS = 2000 * 2(峰值倍率) = 4000 QPS
2) 压测单节点承载(以HTTP注册+心跳为例)
# 通过 wrk 压测 Nacos 接口,-t 线程,-c 并发,-d 压测时长
wrk -t4 -c200 -d60s http://nacos-vip:8848/nacos/v1/ns/instance/list?serviceName=demo
# 预期效果:输出请求吞吐与延迟,作为容量基线
3) 磁盘IO基线测试
# 测试顺序写入性能,bs 块大小,count 写入次数
dd if=/dev/zero of=/data/nacos/iotest.dat bs=4M count=256 oflag=direct
# 预期效果:观察 MB/s,确保满足高频配置发布写入峰值
生产部署示例(安装与配置)
# 1) 部署目录
mkdir -p /opt/nacos /data/nacos/logs /data/nacos/data
# 2) 解压并配置(以 nacos-server 为例)
tar -xzf nacos-server-2.x.x.tar.gz -C /opt/nacos
cd /opt/nacos/nacos/bin
# 3) application.properties 配置外置 MySQL(路径:/opt/nacos/nacos/conf/application.properties)
cat >> /opt/nacos/nacos/conf/application.properties <<'EOF'
db.num=1
db.url.0=jdbc:mysql://mysql-vip:3306/nacos?characterEncoding=utf8&connectTimeout=3000&socketTimeout=6000
db.user=nacos
db.password=StrongPass
EOF
# 4) 集群节点列表(路径:/opt/nacos/nacos/conf/cluster.conf)
cat > /opt/nacos/nacos/conf/cluster.conf <<'EOF'
10.0.0.11:8848
10.0.0.12:8848
10.0.0.13:8848
EOF
# 5) 启动(cluster 模式)
./startup.sh -m cluster
负载均衡示例(Nginx 七层)
# /etc/nginx/conf.d/nacos.conf
upstream nacos_cluster {
server 10.0.0.11:8848 max_fails=2 fail_timeout=5s;
server 10.0.0.12:8848 max_fails=2 fail_timeout=5s;
server 10.0.0.13:8848 max_fails=2 fail_timeout=5s;
}
server {
listen 80;
location / {
proxy_pass http://nacos_cluster;
proxy_connect_timeout 3s;
proxy_read_timeout 10s;
}
}
排错与验证(含命令解释)
# 1) 验证集群状态
curl -s http://nacos-vip:8848/nacos/v1/ns/operator/servers | jq .
# 2) 查看日志定位启动问题
tail -f /data/nacos/logs/nacos.log
# 3) 检查端口与连通性
ss -lntp | grep 8848
curl -I http://10.0.0.11:8848/nacos/
# 4) 检查 MySQL 连接(排查配置或权限问题)
mysql -h mysql-vip -u nacos -p -e "show databases;"
常见问题与快速处理
- 节点反复选主:检查节点间时延与时钟偏移,建议开启NTP并将跨机房部署改为多集群。
- 启动报数据库错误:确认 db.url、用户权限与防火墙放行,验证端口可达。
- 配置发布慢:检查磁盘IO与MySQL慢查询,必要时提升SSD与DB参数。
练习
1) 使用上述 Nginx 配置搭建 Nacos 7 层负载均衡,观察节点健康切换。
2) 修改 cluster.conf 增加第四节点,低峰期滚动扩容并记录同步时间。
3) 通过 wrk 压测前后对比,计算容量冗余是否达到 30% 目标。