引言
彼時(shí) SpringBoot 初興,萬(wàn)象更新,號(hào)稱(chēng)“開(kāi)箱即用”“約定優(yōu)于配置”,一時(shí)間風(fēng)靡四方。
開(kāi)發(fā)者趨之若鶩,紛紛稱(chēng)快,仿佛自此架構(gòu)之重可卸、配置之繁可省,一行 main() 即可氣定神閑、縱橫沙場(chǎng)。
然則時(shí)光久遠(yuǎn),方知此言非虛,卻也未盡其真。所謂默認(rèn),不過(guò)是你未曾開(kāi)口,框架自作主張。表面無(wú)礙,實(shí)則步步殺機(jī),線上事故十有八九,皆因“未曾配置”的“默認(rèn)”。
回首往昔,實(shí)堪自嘲。曾自詡熟稔底層、精通原理,然于這些藏于陰影處的默認(rèn)設(shè)定,竟茫然不覺(jué)。故障一起,倉(cāng)皇失措,耗時(shí)良久,方才發(fā)現(xiàn),不過(guò)是框架做了一個(gè)并不適合的決定。
是以今日提筆,將過(guò)往種種記錄于此,只盼后來(lái)者少走彎路。
正文
Tomcat連接池
SpringBoot默認(rèn)使用Tomcat作為Web容器,但默認(rèn)的連接池配置在高并發(fā)場(chǎng)景下會(huì)成為瓶頸。
默認(rèn)配置下,Tomcat的最大連接數(shù)只有200,最大線程數(shù)也只有200。這意味著當(dāng)并發(fā)請(qǐng)求超過(guò)200時(shí),后續(xù)請(qǐng)求就會(huì)排隊(duì)等待。在生產(chǎn)環(huán)境中,這個(gè)配置明顯不夠用。

全關(guān)注