Spring Boot連接超時導(dǎo)致502錯誤的實戰(zhàn)案例
1.問題描述
內(nèi)部系統(tǒng)之間通過Nginx來實現(xiàn)路由轉(zhuǎn)發(fā)。
但最近發(fā)現(xiàn)有一個系統(tǒng),經(jīng)常報502錯誤,每天達(dá)到上百次,完全無法忍受。
2. 原因排查
于是進(jìn)行排查, 發(fā)現(xiàn)配置人員把連接超時時間(server.tomcat.connection-timeout)的單位,理解為秒,實際上是毫秒。
SpringBoot的部分配置如下:
# Tomcat server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 connection-timeout: 60 # 錯誤在這里 port: 18080 servlet: context-path: / max-http-header-size: 102400
原來配置的值為 60,如果建立客戶端連接的過程中,恰好碰到GC,并且加上GC的暫停時間總共達(dá)到60ms以上,Tomcat一看,超時了,就會導(dǎo)致建立連接失敗,然后Nginx給客戶端返回502錯誤。
3. 解決辦法
修改連接超時時間,例如修改為【server.tomcat.connection-timeout=6000】, 如下所示:
# Tomcat server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 connection-timeout: 6000 port: 18080 servlet: context-path: / max-http-header-size: 102400
問題解決。
當(dāng)然,502錯誤也不止這個原因,需要排查Nginx鏈路。
總結(jié)
到此這篇關(guān)于Spring Boot連接超時導(dǎo)致502錯誤實戰(zhàn)案例的文章就介紹到這了,更多相關(guān)SpringBoot連接超時導(dǎo)致502錯誤內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java SMM框架關(guān)聯(lián)關(guān)系映射示例講解
SSM框架是spring MVC ,spring和mybatis框架的整合,是標(biāo)準(zhǔn)的MVC模式,將整個系統(tǒng)劃分為表現(xiàn)層,controller層,service層,DAO層四層,使用spring MVC負(fù)責(zé)請求的轉(zhuǎn)發(fā)和視圖管理,spring實現(xiàn)業(yè)務(wù)對象管理,mybatis作為數(shù)據(jù)對象的持久化引擎2022-08-08Mybatis不啟動項目直接測試Mapper的實現(xiàn)方法
在項目開發(fā)中,測試單個Mybatis Mapper方法通常需要啟動整個SpringBoot項目,消耗大量時間,本文介紹通過Main方法和Mybatis配置類,快速測試Mapper功能,無需啟動整個項目,這方法使用AnnotationConfigApplicationContext容器2024-09-09JavaWeb中Session對象的學(xué)習(xí)筆記
在WEB開發(fā)中,服務(wù)器可以為每個用戶瀏覽器創(chuàng)建一個會話對象,即session對象,這篇文章就為大家詳細(xì)介紹Session對象的定義、實現(xiàn)原理等基礎(chǔ)知識點,感興趣的小伙伴們可以參考一下2016-05-05一篇文章總結(jié)Java虛擬機(jī)內(nèi)存區(qū)域模型
這篇文章主要介紹了一篇文章總結(jié)Java虛擬機(jī)內(nèi)存區(qū)域模型,本篇文章主要來總結(jié)一下Java虛擬機(jī)內(nèi)存的各個區(qū)域,以及這些區(qū)域的作用、服務(wù)對象以及其中可能產(chǎn)生的問題,作為大家的面試寶典。,需要的朋友可以參考下2019-06-06SpringSecurity rememberme功能實現(xiàn)過程解析
這篇文章主要介紹了SpringSecurity rememberme功能實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03JAVA中StringBuffer與String的區(qū)別解析
這篇文章主要介紹了JAVA中StringBuffer與String的區(qū)別解析,需要的朋友可以參考下2014-02-02Java ByteBuffer網(wǎng)絡(luò)編程用法實例解析
這篇文章主要介紹了Java ByteBuffer網(wǎng)絡(luò)編程用法實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10Java GUI進(jìn)階之流式布局管理器FlowLayout專項精講
FlowLayout-流式布局管理器,按水平方向依次排列放置組件,排滿一行,換下一行繼續(xù)排列。排列方向(左到右 或 右到左)取決于容器的componentOrientation屬性2022-04-04