携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第十一天,点击查看活动详情
由于公司项目需要用到nacos集群部署,所以在建立集群的同时写了本篇文章记录在部署集群时遇到的问题及解决方案,以便在之后再次部署的时候可以按照操作步骤操作
1.将nacos-server-1.2.1.tar.gz文件放在服务器/usr/local/nacos文件夹下
2.使用tar -xvf nacos-server-1.2.1.tar.gz解压
3.进入conf目录,新建cluster.conf(或者将原本就存在的文件cluster.conf.example改为cluster.conf,使用命令mv cluster.conf.example cluster.conf)
4.编辑cluster.conf,在里面写入部署nacos的服务器ip及端口,示例:
XXX.XXX.XX.XX:8848
XXX.XXX.XX.XX:8848
5.在数据库运行nacos-mysql.sql文件初始化数据库信息
6.修改application.properties文件,将对应mysql的注释解除,配置对应数据库信息
7.配置文件改好后,就可以进行启动nacos,进入bin目录,sh startup.sh运行nacos;
问题:
cluster.conf文件改了也启动成功了,发现访问nacos页面节点列表是空的,后在/nacos/logs/文件下查看nacos.log文件发现以下异常:
java.lang.IllegalStateException: unable to find local peer: XX:8848, all peers: [XX:8848, XX:8848]
异常原因:
而后查阅资料发现异常出现的原因是nacos启动的时候读取的是内网IP,但是在集群列表中不存在这个IP,所以会返回这个异常。
解决方案:
修改每个节点的startup.sh启动文件,在每个文件JAVA_OPT属性下新增一个属性
JAVA_OPT="${JAVA_OPT} -Dnacos.server.ip=外网ip"
每个ip都指向外网的ip,这样就不会去读取内网的ip,再次启动,没有再报该异常