环境说明
系统环境:远程服务器 Ubuntu Linux
Nacos版本:2.1.0
下载Nacos
官方地址:https://github.com/alibaba/nacos/releases
本文使用的是Nacos2.1.0。
安装
将下载好的压缩包上传至服务器。
1、解压命令
tar -xvf nacos-server-2.1.0.tar.gz
2、配置数据库
① 在解压后的nacos/conf目录下有一个nacos-mysql.sql
文件,将其按文件中的指示创建数据库名nacos_config
,并执行该sql文件将表导入至该数据库中。
② 修改nacos/conf目录下的application.properties
文件,将刚刚导入的数据库配置到文件中,原来的该部分内容被注释掉了,去掉注释并修改数据库地址和账户即可:
启动
在目录nacos/bin下执行./startup.sh
启动Nacos。
踩坑来了
1、默认启动模式为集群启动
问题:Nacos默认配置的启动模式为集群启动,所以直接启动会报错。
解决:可以通过两种方式使启动模式改为单机启动。
① 输入启动命令时加入如下参数,使启动模式改为单机启动: ./startup.sh -m standalone
② 修改startup.sh
启动文件,使默认启动为单机启动。将MODE修改为如下: export MODE="standalone"
2、JDK版本不兼容
问题:使用JDK11启动时报错类找不到。
解决:Nacos官方使用的是JDK8,对其他版本可能不兼容,所以需要更换为JDK8。
如果服务器因为其他原因无法将全局环境变量设置为JDK8,也可以单独为Nacos配置启动所用的JDK。编辑nacos/conf下的startup.sh文件,找到JAVA_HOME配置项,并修改为如下类似路径,需要配置JDK的根路径,当我们启动Nacos时就会使用该JDK进行启动。 export JAVA_HOME="/usr/jdk8"
JAVA_HOME默认配置为空,即使用全局JDK环境。
3、Nacos占用内存过大
问题:启动Nacos后占用过大内存问题。
说明:默认情况下Nacos会向系统申请512MB的内存空间,但在开发环境下该配置并不合理。该占用内存并不是真的跑满了,而是为Nacos初始分配的内存。
解决:该分配内存可进行JVM调参进行优化,编辑nacos/conf下的startup.sh文件,将该文件中的内容修改为如下:
代码语言:javascript复制#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "standalone" ]]; then
JAVA_OPT="${JAVA_OPT} -Xms128m -Xmx128m -Xmn128m"
JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
4、项目无法连接远程
问题:开启8848端口后,客户端连接失败,出现Request nacos server failed
错误信息。
解决:Nacos2.x版本新增了gRPC的通信方式,因此需要新增占用两个端口,并且这两个端口必须开放,否则就连接不上Nacos服务。
详见官方说明:https://nacos.io/zh-cn/docs/2.0.0-compatibility.html
新增如下接口: