解决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 2022</div><div>There was an unexpected error (type=Bad Request, status=400).</div><div>receive invalid redirect request from peer 127.0.0.1</div></body></html>
	at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:556) ~[nacos-client-1.4.1.jar:na]
	at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:498) ~[nacos-client-1.4.1.jar:na]
	at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:493) ~[nacos-client-1.4.1.jar:na]
	at com.alibaba.nacos.client.naming.net.NamingProxy.registerService(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

集群配置

cluster.conf

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 服务。

修改cluster.conf文件

本来以为上述方法已经可以解决此问题,毕竟【百度】出来的!可是过了一会之后又报400问题,中间(应该)没有特别特殊的操作,无非(可能)就是重启 SpringBoot 服务,修改 Nacos 的 application.properties 文件和重启集群等等。

重新排查了一遍,发现NacosWebUI中的 集群管理--->节点列表 中多了一个实例,变成了四个,重新查看了集群 cluster.conf, 发现每一个实例此配置文件中都多了一行【192.168.1.169:8858】。这行(好像)不是我加的,但是不管怎么说,这行都是不必须的,所以我决定删除这行。首先停止 SpringBoot 程序、Nacos集群;然后删除三个实例下面的 data 文件夹,删除 cluster.conf 文件中无故(手残添加)增加的那行,并重新启动集群;最后重新启动 SpringBoot。此时可以正常注册到 Nacos 集群中, 每一个实例中的服务列表中都有该 SpringBoot 服务。

原因&原理

//todo

邮箱:cnaylor@163.com


技术交流QQ群:1158377441

推荐这些文章:

springcloud alibaba 集成 nacos注册中心配置使用

pom
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.repo...

将微服务注册进nacos

必备的依赖
<!--SpringCloud ailibaba nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId...

Spirngboot实现Nacos作为配置中心

一、Nacos
Nacos是阿里旗下的一款开源软件,支持服务注册与发现、配置管理以及微服务管理的组件。Nacos的目标是为了取代过去常用的注册中心(Zookeeper、Eureka等),以及配置中心(Spring Cloud Config等)。Nacos集成了注册中心和配置中心的功能。
基于此,虽然是SpirngBoot项目,服务注册与...

Spring Cloud Alibaba(二)Nacos注册中心

一、前言
  以前我们习惯用Eureka和Zookeeper来作为服务注册中心,那么现在既然说的是Spring Cloud Alibaba,我们这里就采用Nacos作为注册中心。
  Nacos非常强大,不仅在注册中心上可以很好的替代Eureka,且还能作为配置中心,服务总线来使用,相当牛皮,开整开整!

二、准备工作
1、下载
  官...

【Spring cloud】注册服务

一 、版本依赖(2022.3月最新)

 
 
 
 注意:Springboot 2.6.3以上,Navos去下载1.4.2版本,Spring Cloud Alibaba :2021.0.1.0,  Spring Cloud:2021.0.1
先建一个Spring boot工程,版本选择...

Nacos源码启动报错问题解决:import com.alibaba.nacos.consistency.entity.ReadRequest

ConsistencyProtocol 类:

package com.alibaba.nacos.consistency;

import com.alibaba.nacos.consistency.entity.ReadRequest;
import com.alibaba.nacos.consistency.entity.Resp...

Nacos 之服务配置中心

一、Nacos 作为配置中心-基础配置
1.建立Model
建立一个名为”cloudalibaba-config-nacos-client3377“的Model。

 
 
2.改POM

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="...

文章标题:解决SpringBoot连接Nacos集群报400问题
文章链接:https://www.dianjilingqu.com/50898.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>