最近在学习Spring Cloud,在学习Spring Cloud Alibaba时。安装Nacos出现了一堆错误。可能是因为版本比较新的问题,跟视频教学不一致,安装发生了很多改变。
Nacos Windows单机版:
本文使用的是Nacos 1.4.1的版本(发布于2021年1月份,算是较新的版本了) 下载地址
- 下载后进行解压。
- 进入到bin目录,直接运行startup.cmd。将会遇到第一个问题:db.num is null。
- 解决办法 :
步骤1:mysql新建库:nacos,字符集:utf8 ,排序规则:utf8_general_ci 步骤2:conf/nacos-mysql.sql文件里的sql脚本执行到本机数据库的nacos库中 步骤3:conf/application.properties里修改配置 - 修改完毕后,保存。重新打开cmd窗口运行startup.cmd。紧接着就遇到了第二个问题:org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat错误。
- 解决办法:nacos是默认的集群模式所以我们在startup.cmd里面改成单机模式就好了
- 保存,再次重新打开cmd窗口运行startup.cmd即可。
Nacos Linux集群版:
安装集群版本必须要有Nginx。Nginx可以只要一个就够了。但是Nacos集群必须3台以上才可以正常运行。(如果您的服务器是2G的,运行后很十分卡顿,亲测!!建议换4G的)
安装成功后,我们先对Nacos进行相关配置。
- 下载Nacos Linux版本,并且将文件上传到服务器上。下载地址
- 作者是将文件解压到usr目录下的,直接tar -zxvf 文件名。
- 创建nacos数据库,编码格式是UTF-8。
- 在新创建的数据库中运行nacos提供的sql文件(nacos-mysql.sql)。
- 进入到conf目录对application.properties进行数据库连接修改,目的是为了持久化。(其实跟Windows一样。。)
- 先使用hostname -I 命令获取到能够识别的IP(如果是服务器,可以直接用公网IP)
- 对conf目录下的cluster.conf.example文件进行修改
vim cluster.conf.example
#端口号可以自定义
- 进入到bin目录下,对startup.sh文件进行修改(最大的坑就在这里,这里卡了博主1个多小时)。
a. 传统版本的startup.sh修改内容 b. nacos版本1.14.的startup.sh的配置内容有所改变
①已经存在并且在使用, p:关键字 r如图:
vim startup.sh
#直接通过/while 搜索到要修改的部分
新增内容:
# 再使用/nohup 搜索
新增 保存退出即可,Nacos的配置就完成了。注意检查!!!别敲错了!!! (之前不知道为啥,明明没有敲错,却一直报错,说./startup.sh:行143: -Dserver.port=${SERVER.PORT}: 坏的替换 。删掉重新写就好)
- 接下来就对Nginx进行配置。先停止Nginx
ps -ef|grep nginx.conf
#得到进程号,可能会有多个进程,记录下右边有Master的那个进程编号
kill -QUIT 进程编号
- 修改Nginx的配置文件。(Nginx的配置文件有2处,分别是/usr/local/nginx/conf和安装目录:/usr/nginx/conf,我们选择一处进行修改就好了,启动的时候指定配置文件即可。)
cd /usr/local/ngnix/conf
vim nginx.conf
添加的内容,server 公网IP:端口号
#保存后,启动Nginx
#进入/usr/local/nginx/sbin目录
./nginx -c /usr/local/nginx/conf/nginx.conf
- 启动Nacos
cd /usr/nacos/bin
./startup.sh -d 8847
./startup.sh -d 8848
./startup.sh -d 8849
这样就基本运行正常了,如果报错了,可以到nacos/bin/logs目录下的start.out文件查看具体原因 6.截止到此处,1个Nginx+3个nacos注册中心+1个mysql
测试 查看nacos进程启动数ps -ef | grep nacos | grep -v grep | wc -l 查看nginx进程ps - ef| grep nginx
测试通过nginx,访问nacos - http://ip/nacos/#/login
博主是搭建完成后根据记忆编写博客的,如果有哪一步不是很详细或者步骤错了。可以评论区留言或者私信我!!
|