SpringBoot連接Nacos集群報(bào)400問(wèn)題及完美解決方法
問(wèn)題描述
搭建一個(gè)Nacos集群,使用 SpringBoot 程序連接 Nacos 集群,在啟動(dòng)的時(shí)候報(bào)異常,程序啟動(dòng)失敗,而后程序假死。詳細(xì)控制臺(tái)日志信息如下:
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>
環(huán)境
- NacosServer 版本:2.0.3
- NacosServer集群部署方式:在windows11下啟動(dòng)三個(gè)實(shí)例,分別運(yùn)行在8848,8858,8868端口上面,三個(gè)實(shí)例連接同一個(gè)MySQL數(shù)據(jù)庫(kù)
- NacosClient為 SpringBoot 程序,使用 SpringInitializr 創(chuàng)建,未引入其他無(wú)關(guān)依賴
- 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 下,啟動(dòng)就能把CPU占到56%(酷睿I5-11代),啟動(dòng)成功之后占了1.7G的內(nèi)存。此解決方法是百度出來(lái)的,首先停止 SpringBoot 程序、Nacos集群;然后刪除三個(gè)實(shí)例下面的 data 文件夾并重新啟動(dòng)集群;最后重新啟動(dòng) SpringBoot。此時(shí)可以正常注冊(cè)到 Nacos 集群中, 每一個(gè)實(shí)例中的服務(wù)列表中都有該 SpringBoot 服務(wù)。
修改cluster.conf文件
本來(lái)以為上述方法已經(jīng)可以解決此問(wèn)題,畢竟【百度】出來(lái)的!可是過(guò)了一會(huì)之后又報(bào)400問(wèn)題,中間(應(yīng)該)沒(méi)有特別特殊的操作,無(wú)非(可能)就是重啟 SpringBoot 服務(wù),修改 Nacos 的 application.properties 文件和重啟集群等等。
重新排查了一遍,發(fā)現(xiàn)NacosWebUI中的 集群管理--->節(jié)點(diǎn)列表 中多了一個(gè)實(shí)例,變成了四個(gè),重新查看了集群 cluster.conf, 發(fā)現(xiàn)每一個(gè)實(shí)例此配置文件中都多了一行【192.168.1.169:8858】。這行(好像)不是我加的,但是不管怎么說(shuō),這行都是不必須的,所以我決定刪除這行。首先停止 SpringBoot 程序、Nacos集群;然后刪除三個(gè)實(shí)例下面的 data 文件夾,刪除 cluster.conf 文件中無(wú)故(手殘?zhí)砑樱┰黾拥哪切校⒅匦聠?dòng)集群;最后重新啟動(dòng) SpringBoot。此時(shí)可以正常注冊(cè)到 Nacos 集群中, 每一個(gè)實(shí)例中的服務(wù)列表中都有該 SpringBoot 服務(wù)。
原因&原理
//todo
到此這篇關(guān)于解決SpringBoot連接Nacos集群報(bào)400問(wèn)題的文章就介紹到這了,更多相關(guān)SpringBoot連接Nacos集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatis TypeHandler注入spring的依賴方式
這篇文章主要介紹了mybatis TypeHandler注入spring的依賴方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
在Java中關(guān)閉SQL執(zhí)行日志來(lái)優(yōu)化服務(wù)器性能
Java應(yīng)用程序中,數(shù)據(jù)庫(kù)操作是一個(gè)常見(jiàn)的任務(wù),如果不適當(dāng)?shù)靥幚鞸QL執(zhí)行日志,可能會(huì)導(dǎo)致不必要的性能損失,SQL執(zhí)行日志通常由數(shù)據(jù)庫(kù)連接池、ORM框架(如Hibernate、MyBatis)、或者應(yīng)用服務(wù)器的內(nèi)置日志機(jī)制生成,本文將探討如何在Java中關(guān)閉SQL執(zhí)行日志,提升應(yīng)用性能和效率2024-11-11
Java每隔兩個(gè)數(shù)刪掉一個(gè)數(shù)問(wèn)題詳解
這篇文章主要介紹了Java每隔兩個(gè)數(shù)刪掉一個(gè)數(shù)問(wèn)題詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Spring中的@ControllerAdvice和@ExceptionHandler注解處理全局異常
這篇文章主要介紹了Spring中的@ControllerAdvice和@ExceptionHandler注解處理全局異常,@ControllerAdvice ,@ControllerAdvice是一個(gè)非常有用的注解,顧名思義,這是一個(gè)增強(qiáng)的 Controller,一般配合@ExceptionHandler使用來(lái)處理全局異常,需要的朋友可以參考下2024-01-01
擴(kuò)展logback將日志輸出到Kafka實(shí)例詳解
logback是一個(gè)功能強(qiáng)大的Java日志框架,它是log4j的繼任者,提供了豐富的功能和配置選項(xiàng),本文將介紹如何通過(guò)擴(kuò)展logback,將日志輸出到Kafka實(shí)例,感興趣的朋友一起看看吧2024-12-12

