目录
前言
Nacos 用于发现、配置和管理微服务。它提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。
下面让我们开始下载安装吧 , 参考:官方文档
运行环境:
CentOS 7.6; JDK1.8;MySQL 8.0.21;nacos-server 1.4.1
单机安装:
1,下载及编译
//从GitHub拉取代码 如果下载代码比较慢,可以从Release地址下载 nacos-server-$version.zip 或者 nacos-server-$version.tar.gz 包。
git clone https://github.com/alibaba/nacos.git
//编译打包 (install命令完成了项目编译、单元测试(跳过)、打包功能,同时把打好的可执行jar包布署到本地maven仓库)
cd nacos/ mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
【坑】windows安装,在PowerShell窗口下执行maven命令行报错:Unknown lifecycle phase ".test.skip=true".
解决方案:'-Dmaven.test.skip=true' ,win10下 Shift+右击 打开 PowerShell 窗口,而 PowerShell 窗口下,执行带参数的需要’单引号’包起来才可以。或者直接在cmd窗口启动
2,单机启动
//进入编译好的Nacos文件夹
cd distribution/target/nacos-server-$version/nacos/bin
//启动 (linux用.sh , windows用.cmd)
./startup.sh 或 ./startup.cmd
//指定模式启动
./startup.sh -m standalone (单机)
./startup.sh -m cluster (集群)
ps:若启动失败,先查看日志确认下什么方式启动的。(不同版本默认方式不一样)日志会有提示信息,如:
Runing in stand alone mode (单机) 或 Nacos is starting in cluster (集群)
【坑】nacos1.3.2不能启动(Aug 4, 2020)启动报错:db.num is null
解决方案:
编辑startup.cmd文件,把 set MODE="cluster"集群模式改为单机模式,set MODE = "standalone"
或者配置mysql数据库解决:配置mysql数据库解决
3,快速访问
//默认端口为8848
http://yourlocalhost:8848/nacos/index.html
账户:nacos
密码:nacos
集群安装:
1,安装单机后,准备数据库
//文件夹distribution/target/nacos-server-$version/nacos/conf 中,有nacos的sql文件。
新建MySQL数据库,并运行nacos-mysql.sql。
2,修改配置
//每个版本的配置有所不同,以对应的模块cluster.conf.example和application.properties.example为准。
//本次配置使用的是 nacos-server-1.4.1
//配置集群IP
拷贝cluster.conf.example一份为cluster.conf,并修改cluster.conf配置,改为自己的ip地址
192.16.1.110:8848
//集群方式需配置数据库地址,修改application.properties。
spring.datesource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_db?serverTimezone=UTC (加serverTimezone=UTC是为了防止连接数据库时报错 Caused by: java.sql.SQLException: The server time zone value is unrecognized or represents more than one time zone. )
db.user=root
db.password=root
3,启动服务
保存配置文件,./start.sh -m cluster 启动访问即可 (注意配置文件里设置的端口)。
【坑】启动nacos时,总是启动不起来。日志提示Cannot allocate memory(分配内存失败)
原因: 查看启动脚本,发现单击启动时 默认的内存最小为256m, 如果是集群,则最小内存为 1G,所以在虚拟机上配置一个集群,可以能需要几个G的内存。
if [[ "${MODE}" == "standalone" ]]; then
JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
JAVA_OPT="${JAVA_OPT} -server -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"
解决:
修改集群需要的内存大小。如: -Xms512m -Xmx512m -Xmn256m
4,简单使用
界面化操作,编辑保存,即可在数据库里看到对应的数据:
![](https://img-blog.csdnimg.cn/img_convert/b70a9bef89c53b85953715746b4dda74.png)
![](https://img-blog.csdnimg.cn/img_convert/ea120423ab7e534fd10aa2653492870b.png)