单机启动nacos_nacos初体验-踩坑与填坑篇

本文介绍了在Windows10环境下安装Nacos 1.3.2的详细步骤,包括下载安装包、启动过程中的常见问题及解决方案。在启动过程中遇到的小坑是执行startup.cmd无响应,解决方法是直接在命令行输入startup.cmd。大坑是启动失败报错'db.num is null',解决方法是通过添加启动参数-m standalone启动单机模式。大大坑是集群模式下出现'UnknownHostException',解决办法是配置cluster.conf。最后,文章提醒读者,遇到问题可参考Nacos的GitHub Issue寻找答案。
摘要由CSDN通过智能技术生成

最近在看 RuoYi 的分布式微服务架构权限管理系统,RuoYi 的注册中心和配置中心都是采用 alibaba 的 nacos,本文主要介绍使用 Windows10 电脑安装 nacos 1.3.2 以及启动 nacos 中遇到的一些问题以及解决方法。

一、下载 nacos 安装程序

1.1 下载 nacos

按照 nacos 官网的快速开始手册,下载 nacos 的方式有 2 种,第一种下载编译后压缩包的 nacos,第二种方式,直接在 github 上下载源程序,然后编译生成最终可执行的程序。

本次主要是安装 nacos,没有选择难度稍微较高的源程序编译的方式,直接选择下载已经编译后的程序包,从 nacos 最新稳定版本列表[1] 下载 nacos-server-$version.zip 包,这个过程比较简单,选择最新版本nacos-server-1.3.2.zip 下载。

编译后的压缩包有两种压缩方式,一种是 zip 压缩文件后缀,另外一种是 tar.gz 的压缩文件后缀,如果在 Windows 操作系统上,建议下载 zip 结尾的程序包,直接解压即可,tar.gz 后缀的文件使用 7zip 解压 2 次才算解压完成,通常在 linux 等操作系统更方便解压。除此之外,解压后的内容没有其他的差异,大家可以放心使用。

1.2 启动 nacos

nacos 提供两个启动脚本,分别是startup.cmd和startup.sh;由于使用 Windows 操作系统,选择直接执行startup.cmd文件,在 nacos 快速开始手册中,建议双击startup.cmd 或者在命令窗口使用cmd startup.cmd的方式,在这里使用 cmd 命令窗口,执行startup.cmd命令。

建议:使用双击方式也可以启动 nacos,但是如果命令启动过程中出现错误,命令窗口会一闪而过,还需要通过查看日志才能知道出现哪些错误

技巧:在这里跟大家说一个小的技巧,在 cmd 窗口中如何快速到达指定文件目录,只需要指定的文件目录的文件导航窗口输入cmd回车即可。可以看到在 cmd 的文件目录直接到达指定的文件目录,避免不断的编写 cd 命令

ca6823663bc02ed47f34c6ab6d9ae971.png

cmd窗口快速到达指定文件目录

1b17e47fef31bdf33d5621d0506a6ee6.png

效果图

二、出现问题列表

在执行启动命令的时候,大坑、小坑不断的出现,本章节主要通过罗列出现的问题,最后放出最优的解决方法。

2.1 小坑:在命令行执行 cmd startup.cmd 没有反应

在 nacos 官网文档中,Windows 操作系统启动 nacos 的命令

cmd startup.cmd

问题现象

d00c2bf7652a05c14daff5449526b471.png

启动nacos无响应

不知是否因为是 win10 的原因,建议阿里的相关程序员能够看到这,完善快速手册,避免小白踩坑。

解决方法: 直接在 cmd 中输入startup.cmd回车即可

2.2 大坑: 启动失败,提示java.io.IOException: java.lang.IllegalArgumentException: db.num is null

问题现象: 控制台中出现db.num is null的错误提示信息

74badc37d9957f714c54c11d70b89a10.png

db.num is null

解决方法: 参考 nacos 的 issues 中找到了解决办法,需要在启动时,指定启动的模式

如果是非单机模式启动 默认使用 mysql 作为外置数据库,此时需要到 conf/application.properties 内添加 mysql 的相关配置参数。否则就会去找 jdbc.properties,两者都没有,那相当于依赖没有启动成功,自然就启动不起来。解决方法是启动时加上 -p embedded 使用 derby + jraft 的内嵌数据库,或者-m standalone 启动单机模式

修改启动代码,可以在下面的代码中任选其一进行执行,在这里直接选择了单机模式。

# 使用derby +jraft的内嵌数据库启动集群模式startup.cmd -p embedded# 使用 -m standalone 启动单机模式startup.cmd -m standalone

2.3 大大坑:使用 mysql 数据库的集群模式,提示java.net.UnknownHostException

使用 mysql 数据库启动集群模式,需要将相关的 sql 脚本在数据库中进行执行 **第一步:**创建数据库:nacos **第二步:**创建相关表,可以执行脚本conf/nacos-mysql.sql,创建相关表以及导入相关数据 **第三步:**修改配置文件,修改conf/application.properties,将 Config Module Related Configurations 注释的内容释放

#*************** Config Module Related Configurations ***************#### If use MySQL as datasource:spring.datasource.platform=mysql### Count of DB:db.num=1### Connect URL of DB:db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=rootdb.password=123456

**第四步:**执行startup.cmd

问题出现了,在命令窗口中,出现了错误,提示java.net.UnknownHostException: jmenv.tbsite.net

f4360ecbd24c45b47eda8a5b613c1eeb.png

UnknownHostException

解决方法

复制 conf/cluster.conf.example 到 conf/cluster.conf 设置 ip 和端口 重启服务

修改代码如下:

#it is ip#example127.0.0.1:8847

终于看到成功启动的标识了

06c40e2ed06a94cbf7d3769ff14b446b.png

集群模式启动成功

三、验证一下

nacos 启动成功后,会启用一个 web 程序,默认端口号为:8848(珠穆拉玛峰的高度,还是阿里会找端口号),可以修改 conf/application.properties 中的server.port 设定自定义的端口号,直接访问 http://localhost:8848/nacos/

b5e746496dababf15aaf211df1f000ad.png

登陆界面

使用用户名:nacos,密码:nacos 可登陆系统

2fa5661fd03bd23d1193129328c5c6e1.png

节点列表

如果使用单机模式的情况,节点列表中只有一个节点 IP,截图中节点为启动集群模式,修改 conf/cluster.conf 后,启动 nacos,节点列表中会出现一个 down 的节点

d2aff3063f7f86592b55a820880d8d57.png

Down节点

这是因为该节点没有启动,只需要将 nacos 文件夹复制一份,修改 conf/application.properties 的server.port,使用相同方式启动即可。

四、总结

在安装 nacos 遇到的问题,都可以在度娘中找到答案,由于 nacos 的不断更新,使用新版本的 nacos 遇到的问题,最好到nacos 的 github 主页[2]中 issue 搜索,基本上都可以找到解决办法,如果在度娘和 github 上都无法找到解决办法,需要我们深入 nacos 的源码,查看具体原因。

最后也建议阿里的同事能够将文档更新到最新版本,避免大家走弯路。

参考文献

[1] nacos 最新稳定版本列表: https://github.com/alibaba/nacos/releases

[2] nacos 的 github 主页: https://github.com/alibaba/nacos

[3] Nacos 快速开始: https://nacos.io/zh-cn/docs/quick-start.html

[4] nacos1.3.2 无法启动: https://github.com/alibaba/nacos/issues/3529

[5] Caused by: java.net.UnknownHostException: jmenv.tbsite.net: https://github.com/alibaba/nacos/issues/2902

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值