centos搭建单机nacos服务

搭建单机nacos服务

前提:机器必须具备JDK 1.8环境

首先下载nacos包,我用的是nacos-server-2.4.0.1.tar.gz,把包传到Linux服务器上并使用命令解压到/usr/local目录下

tar -zxvf nacos-server-2.4.0.1.tar.gz -C /usr/local

这时nacos就可以启动了,执行命令 /usr/local/nacos/bin/startup.sh -m standalone即可,稍等半分钟左右用jps查看服务是否启动成功

但如果用的不是真实服务器而是虚拟机或树莓派,你可能需要修改nacos运行时所需内存:进入/usr/local/nacos/bin 目录,打开文件startup.sh,大约91行代码附近,做如下修改

#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "standalone" ]]; then
	# 单机启动修改此处配置,虚拟机如果有4G内存,使用默认配置也够,看自己真实情况
    JAVA_OPT="${JAVA_OPT} ${CUSTOM_NACOS_MEMORY:- -Xms512m -Xmx512m -Xmn256m}"
    JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
    if [[ "${EMBEDDED_STORAGE}" == "embedded" ]]; then
        JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true"
    fi
    # 集群启动修改此处配置,建议-Xms512m -Xmx512m -Xmn256m
    JAVA_OPT="${JAVA_OPT} -server ${CUSTOM_NACOS_MEMORY:- -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m}"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
    JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
fi

使用MySQL存储nacos服务的数据

打开文件/usr/local/nacos/conf/mysql-schema.sql,拷贝其中的SQL语句放到MySQL执行

打开文件/usr/local/nacos/conf/application.properties,大约33行处做如下修改

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
spring.datasource.platform=mysql
#spring.sql.init.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
# 数据库配置,如果机器性能差网络慢,可以把jdbc参数中的Timeout的参数改得尽量大些,其他jdbc参数建议不要动
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos? characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=123456

把nacos注册为系统服务

如果还想把nacos注册为系统服务,通过systemctl来启动关闭,也是可以的,具体步骤如下

/etc/systemd/system 文件夹下新建nacos.service文件,文件内容如下

[Unit]
Description=nacos
After=network.target

[Service]
# 请把JAVA_HOME修改为自己机器上的配置,不要照搬我的!
Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_421"
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

修改完成后,执行命令如下

# 重载配置
systemctl daemon-reload
# 启动服务
systemctl start nacos
# 查看状态
systemctlstatus nacos

如果不行,报错JAVA_HOME找不到,那就只能去修改startup.sh脚本了,打开/usr/local/nacos/bin/startup.sh,大约30行代码附近,做如下修改

# 请把JAVA_HOME修改为自己机器上的配置,不要照搬我的!
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/java/jdk1.8.0_421
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
#[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME

OK!nacos启动成功后,你可以在浏览器输入 http://IP地址:8848/nacos访问了

提醒一下,如果Linux的防火墙是工作状态的,防火墙要放开端口,我用的是centos,Ubuntu的请自行度娘

  1. 主端口 (HTTP): 默认为8848,此端口用于客户端、控制台及OpenAPI的HTTP通信。
  2. 客户端gRPC端口: 默认为主端口+1000,即9848,用于客户端通过gRPC协议向服务端发起连接和请求。
  3. 服务端gRPC端口: 默认为主端口+1001,即9849,用于服务间同步等内部通信。
  4. Jraft请求服务端端口: 默认为主端口-1000,即7848,用于处理服务端间的Raft相关请求。
# 放开端口(永久生效)
sudo firewall-cmd --zone=public --add-port=端口号/tcp --permanent
# 重载配置
sudo firewall-cmd --reload
posted @   勤匠  阅读(11)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示