
一、 Nacos Server 启动入口
Nacos Server 的启动入口位于 nacos-server 模块的 com.alibaba.nacos.Nacos 类。
- 主类:
com.alibaba.nacos.Nacos - 主方法:
public static void main(String[] args)
当运行 Nacos Server 的启动脚本 (startup.sh 或 startup.cmd) 时,脚本最终会执行 java 命令,并指定 com.alibaba.nacos.Nacos 作为主类来启动 Nacos 应用。
源码位置: nacos/nacos-server/src/main/java/com/alibaba/nacos/Nacos.java
二、 Nacos Server 启动参数
Nacos Server 的启动参数主要通过以下几种方式传递:
- 命令行参数 (Command-Line Arguments): 直接在启动命令中通过
-D参数指定 Java 系统属性,或者使用--参数传递应用配置参数。 - 配置文件 (Configuration Files): Nacos Server 会加载指定的配置文件,配置文件中的参数会被读取并应用。
- 环境变量 (Environment Variables): Nacos Server 可以读取环境变量中的参数。
常用的启动参数 (按功能分类):
1. 运行模式 (Mode):
-m standalone或--server.standalone=true: 以 单机模式 (Standalone Mode) 启动 Nacos Server。这是默认模式,适用于开发、测试环境,或对高可用性要求不高的场景。单机模式下,数据默认使用内嵌的 Derby 数据库存储。-m cluster或--server.standalone=false(或不指定-m): 以 集群模式 (Cluster Mode) 启动 Nacos Server。 适用于生产环境,提供高可用性和高扩展性。集群模式下,数据通常需要配置外部数据库 (如 MySQL) 进行持久化。
2. 配置文件 (Configuration Files):
-p <config_path>或--nacos.config.path=<config_path>: 指定 Nacos 配置文件的目录路径。 默认情况下,Nacos 会尝试加载conf目录下的配置文件。conf/application.properties或conf/application.yml: Nacos 的主要配置文件,用于配置 Nacos Server 的各种参数,例如端口、数据库连接、集群配置、日志配置等。
3. 端口和地址 (Ports and Addresses):
-p <port>或--server.port=<port>: 指定 Nacos Server 的 HTTP 端口。 默认端口是8848。--server.servlet.context-path=<context_path>: 指定 Nacos Server 的 Context Path (Servlet 上下文路径)。 默认为/nacos。--nacos.inetutils.ip-address=<ip_address>: 指定 Nacos Server 绑定的 IP 地址。 默认情况下,Nacos 会自动检测 IP 地址。在多网卡或特殊网络环境下,可能需要手动指定 IP 地址。
4. 数据持久化 (Data Persistence):
-
单机模式 (Standalone Mode):
- 默认使用内嵌的 Derby 数据库进行持久化,数据存储在
data/derby-data目录。 - 单机模式下,不建议修改数据库配置,因为 Derby 主要用于演示和测试,性能和可靠性有限。
- 默认使用内嵌的 Derby 数据库进行持久化,数据存储在
-
集群模式 (Cluster Mode):
- 需要配置外部数据库 (通常是 MySQL) 进行持久化。
- 数据库连接配置通常在
conf/application.properties或conf/application.yml文件中配置,例如:
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DBNAME}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&serverTimezone=UTC db.user=nacos db.password=nacosMYSQL_HOST,MYSQL_PORT,MYSQL_DBNAME,nacos,nacos: 这些占位符通常需要替换为你的实际 MySQL 数据库连接信息。 你也可以直接在配置文件中填写实际的值,或者通过环境变量传入。
5. 集群配置 (Cluster Configuration):
conf/cluster.conf: 在集群模式下,需要配置conf/cluster.conf文件,列出 Nacos 集群中所有 Server 节点的 IP 地址和端口。 每行一个节点,格式为ip:port。192.168.1.10:8848 192.168.1.11:8848 192.168.1.12:8848--nacos.member.list=<node1>,<node2>,<node3>(不推荐,推荐使用cluster.conf): 也可以通过命令行参数--nacos.member.list指定集群节点列表,用逗号分隔。 但通常推荐使用cluster.conf配置文件进行集群配置,更清晰易管理。
6. JVM 参数 (JVM Options):
- Nacos Server 启动脚本通常会设置一些默认的 JVM 参数,例如堆内存大小、GC 参数等。
- 你可以根据你的实际需求调整 JVM 参数,例如通过修改
startup.sh或startup.cmd脚本中的JAVA_OPT变量来设置 JVM 参数。 - 常用的 JVM 参数包括:
-Xms<size>: 设置 JVM 初始堆大小。-Xmx<size>: 设置 JVM 最大堆大小。-Xmn<size>: 设置 JVM 新生代大小。-XX:MetaspaceSize=<size>: 设置元空间大小 (JDK 8+)。-XX:MaxMetaspaceSize=<size>: 设置最大元空间大小 (JDK 8+)。-XX:+UseG1GC或-XX:+UseConcMarkSweepGC: 选择垃圾回收器。-verbose:gc,-XX:+PrintGCDetails,-XX:+PrintGCTimeStamps: GC 日志相关参数。
7. 日志配置 (Logging Configuration):
- Nacos 默认使用 Logback 作为日志框架。
- 日志配置文件通常是
conf/logback.xml。 - 你可以修改
logback.xml文件来配置日志级别、日志输出格式、日志文件路径等。
8. 安全配置 (Security Configuration):
-
认证 (Authentication):
- Nacos 默认开启认证。
- 默认用户名/密码是
nacos/nacos。 - 我们可以在
conf/application.properties或conf/application.yml中配置认证相关的参数,例如:
nacos.core.auth.enabled=true # 开启认证 nacos.core.auth.server.identity.key=your_key # 服务端密钥 nacos.core.auth.server.identity.value=your_value # 服务端密钥值- 用户管理: Nacos 控制台提供用户管理功能,可以添加、删除、修改用户和角色。
-
鉴权 (Authorization):
- Nacos 也支持基于 RBAC 的权限控制。
- 鉴权配置也通常在
conf/application.properties或conf/application.yml中配置。
9. 其他常用参数:
--nacos.home=<nacos_home>: 指定 Nacos Home 目录。 默认情况下,Nacos Home 目录是 Nacos Server 启动脚本所在的目录。--spring.profiles.active=<profile>: 激活 Spring Profiles,用于加载不同环境的配置 (例如dev,test,prod)。--help或-h: 显示 Nacos Server 启动参数帮助信息。
启动脚本示例 (startup.sh - Linux/macOS):
#!/bin/bash
# ... 其他脚本代码 ...
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -Dnacos.home=${NACOS_HOME}"
# 集群模式启动 (默认)
JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=false"
# 或 单机模式启动
# JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
# 指定配置文件目录 (可选)
# JAVA_OPT="${JAVA_OPT} -Dnacos.config.path=${NACOS_HOME}/conf"
# 启动命令
JAVA_HOME="${JAVA_HOME:-/usr/java/jdk1.8.0_202}" "${JAVA}" ${JAVA_OPT} com.alibaba.nacos.Nacos "$@"
总结
Nacos Server 的启动入口是 com.alibaba.nacos.Nacos 类的 main 方法。 启动参数可以通过命令行、配置文件、环境变量等多种方式传递。 常用的启动参数包括运行模式、配置文件路径、端口、数据库连接、集群配置、JVM 参数、日志配置、安全配置等。 我们可以根据实际需求,选择合适的启动模式和参数配置 Nacos Server。 最后建议查阅 Nacos 官方文档获取更全面和最新的启动参数信息。
1万+

被折叠的 条评论
为什么被折叠?



