解决SpringBoot连接Nacos集报400问题
问题描述
搭建⼀个Nacos集,使⽤ SpringBoot 程序连接 Nacos 集,在启动的时候报异常,程序启动失败,⽽后程序假死。详细控制台⽇志信息如下:
failed to req API:/nacos/v1/ns/instance after all servers([192.168.1.169:8848]) tried: ErrCode:400, ErrMsg:<html><body><h1>Whitelabel Error Page </h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Tue Feb 08 21:19:48 CST 2 022</div><div>There was an unexpected error (type=Bad Request, status=400).</div><div>receive invalid redirect request from peer 127.0.0.1</di v></body></html>
at com.alibaba.nacos.client.qApi(NamingProxy.java:556) ~[nacos-client-1.4.1.jar:na]
at com.alibaba.nacos.client.qApi(NamingProxy.java:498) ~[nacos-client-1.4.1.jar:na]
at com.alibaba.nacos.client.qApi(NamingProxy.java:493) ~[nacos-client-1.4.1.
jar:na]
at com.alibaba.nacos.client.isterService(NamingProxy.java:246) ~[nacos-client-1.4.1.jar:na]
环境
NacosServer 版本:2.0.3
NacosServer集部署⽅式:在windows11下启动三个实例,分别运⾏在8848,8858,8868端⼝上⾯,三个实例连接同⼀个MySQL数据库
NacosClient为 SpringBoot 程序,使⽤ SpringInitializr 创建,未引⼊其他⽆关依赖
SpringBoot版本:2.5.3
SpringCloud版本:2020.0.3
SpringCloudAlibaba版本:2021.1
笔记本:酷睿I5-11代,RAM-16G
集配置springcloud和springboot
127.0.0.1:8848
127.0.0.1:8858
127.0.0.1:8868
解决办法
删除data⽂件夹重启
Nacos ⾮常占资源,Windows11 下,启动就能把CPU占到56%(酷睿I5-11代),启动成功之后占了1.7G的内存。此解决⽅法是百度出来的,⾸先停⽌ SpringBoot 程序、Nacos集;然后删除三个实例下⾯的 data ⽂件夹并重新启动集;最后重新启动 SpringBoot。此时可以正常注册到 Nacos 集中, 每⼀个实例中的服务列表中都有该SpringBoot 服务。
修改f⽂件
本来以为上述⽅法已经可以解决此问题,毕竟【百度】出来的!可是过了⼀会之后⼜报400问题,中间(应该)没有特别特殊的操作,⽆⾮(可能)就是重启 SpringBoot 服务,修改 Nacos 的 application.properties ⽂件和重启集等等。
重新排查了⼀遍,发现NacosWebUI中的 集管理--->节点列表 中多了⼀个实例,变成了四个,重新查看了集 f, 发现每⼀个实例此配置⽂件中都多了⼀⾏
【192.168.1.169:8858】。这⾏(好像)不是我加的,但是不管怎么说,这⾏都是不必须的,所以我决定删除这⾏。⾸先停⽌ SpringBoot 程序、Nacos集;然后删除三个实例下⾯的 data ⽂件夹,删除 f ⽂件中⽆故(⼿残添加)增加的那⾏,并重新启动集;最后重新启动 SpringBoot。此时可以正常注册到 Nacos 集中, 每⼀个实例中的服务列表中都有该 SpringBoot 服务。
原因&原理
//todo
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论