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;"
  1. 端口冲突
BindException: Address already in use

处理:

ss -lntp | grep 8848
kill -9 <PID>
  1. 内存不足
OutOfMemoryError: Java heap space

处理:调大 -Xmx,并检查堆转储文件。

练习与验证#

  1. 练习一:切换单机到集群
    - 修改 cluster.conf,至少 3 节点
    - 使用 -m cluster 启动并验证控制台可访问

  2. 练习二:配置外部 MySQL
    - 初始化 nacos-mysql.sql
    - 修改 application.properties 指向数据库
    - 重启后检查日志中是否出现 Datasource initialized

  3. 练习三:修改端口并验证
    - 将 server.port 改为 8858
    - 重启服务并访问 http://<ip>:8858/nacos