9.2.5 启动参数与配置文件详解
启动参数与配置文件详解#
本节聚焦 Nacos 的启动入口、关键启动参数与核心配置文件,结合示例、排错与练习,确保能在单机与集群场景下稳定运行、可观测与可维护。
原理草图:启动与配置加载流程#
启动方式与入口示例#
Linux/Unix 启动
# 单机模式启动
cd /opt/nacos
bin/startup.sh -m standalone
# 集群模式启动
bin/startup.sh -m cluster
# 停止服务
bin/shutdown.sh
Windows 启动
:: 单机模式启动
bin\startup.cmd -m standalone
:: 集群模式启动
bin\startup.cmd -m cluster
预期效果
- 控制台日志出现 Nacos started successfully
- 访问 http://<ip>:8848/nacos
启动参数与 JVM 调优示例#
在 bin/startup.sh 中可调整 JVM 参数(建议统一模板管理):
# 文件: /opt/nacos/bin/startup.sh
JAVA_OPT="${JAVA_OPT} -Xms2g -Xmx2g -Xmn1g"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
JAVA_OPT="${JAVA_OPT} -XX:+HeapDumpOnOutOfMemoryError"
JAVA_OPT="${JAVA_OPT} -XX:HeapDumpPath=/opt/nacos/logs"
JAVA_OPT="${JAVA_OPT} -Djava.io.tmpdir=/opt/nacos/tmp"
参数解释
- -Xms/-Xmx/-Xmn:堆内存初始/最大/新生代大小
- UseG1GC:生产推荐 G1
- HeapDumpOnOutOfMemoryError:OOM 时生成堆转储
核心配置文件与路径#
/opt/nacos/conf/application.properties:主配置/opt/nacos/conf/cluster.conf:集群节点列表/opt/nacos/conf/nacos-mysql.sql:外部 MySQL 初始化/opt/nacos/conf/console.conf:控制台相关配置(可选)
application.properties 关键配置示例#
# 文件: /opt/nacos/conf/application.properties
server.port=8848
# 数据源切换为 MySQL
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://10.0.0.10:3306/nacos?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
db.user.0=nacos
db.password.0=StrongPass#2024
# 日志与监控
logging.level.com.alibaba.nacos=INFO
management.endpoints.web.exposure.include=*
# 认证
nacos.core.auth.enabled=true
nacos.core.auth.default.token.secret.key=YourSecretKeyBase64
验证配置生效
# 检查配置文件是否被读取
grep "server.port" /opt/nacos/conf/application.properties
# 访问控制台
curl -I http://127.0.0.1:8848/nacos/
cluster.conf 配置示例#
# 文件: /opt/nacos/conf/cluster.conf
10.0.0.11:8848
10.0.0.12:8848
10.0.0.13:8848
要求
- cluster.conf 的端口必须与 server.port 一致
- 节点建议使用内网 IP
常见启动场景与示例#
单机快速验证
# 不配置 MySQL,使用内置存储(仅测试)
bin/startup.sh -m standalone
生产集群(外部 MySQL)
# 1) 初始化数据库
mysql -h10.0.0.10 -unacos -p < /opt/nacos/conf/nacos-mysql.sql
# 2) 配置 application.properties 指向 MySQL
# 3) 配置 cluster.conf
# 4) 启动集群
bin/startup.sh -m cluster
排错与日志定位#
查看启动日志
tail -f /opt/nacos/logs/start.out
端口占用检查
ss -lntp | grep 8848
常见报错与处理
1. 数据库连接失败
ERROR ... Communications link failure
处理:
- 检查 db.url.0、用户名/密码
- 测试连接:
mysql -h10.0.0.10 -unacos -p -e "show databases;"
- 端口冲突
BindException: Address already in use
处理:
ss -lntp | grep 8848
kill -9 <PID>
- 内存不足
OutOfMemoryError: Java heap space
处理:调大 -Xmx,并检查堆转储文件。
练习与验证#
-
练习一:切换单机到集群
- 修改cluster.conf,至少 3 节点
- 使用-m cluster启动并验证控制台可访问 -
练习二:配置外部 MySQL
- 初始化nacos-mysql.sql
- 修改application.properties指向数据库
- 重启后检查日志中是否出现Datasource initialized -
练习三:修改端口并验证
- 将server.port改为8858
- 重启服务并访问http://<ip>:8858/nacos