tomcat默认连接数_Tomcat的默认连接器
tomcat默認(rèn)連接數(shù)
Tomcat有幾個(gè)連接器可供選擇。 我將把APR連接器放在一邊,而將重點(diǎn)放在BIO和NIO上。
BIO連接器(阻塞I / O)正在阻塞–它使用線程池,每個(gè)線程在該線程池中接收請求,處理請求,響應(yīng)并返回到該池。 在阻塞操作期間(例如,從數(shù)據(jù)庫讀取或調(diào)用外部API),線程被阻塞。
NIO連接器(非阻塞I / O) 要復(fù)雜一些 。 它使用java NIO庫并在請求之間進(jìn)行多路復(fù)用。 它有兩個(gè)線程池–一個(gè)容納輪詢器線程,該輪詢器線程處理所有傳入的請求,并將這些請求推送到由另一個(gè)線程池中的工作線程處理。 兩種池的大小都是可配置的。
何時(shí)選擇NIO與BIO取決于使用情況。 如果您大多數(shù)情況下都是常規(guī)的請求-響應(yīng)用法,那么這無關(guān)緊要,甚至BIO可能也是一個(gè)更好的選擇(如我之前的基準(zhǔn)測試所示 )。 如果您有長期連接,那么NIO是更好的選擇,因?yàn)樗梢詾楦嗖l(fā)用戶提供服務(wù),而無需為每個(gè)用戶分配阻塞線程。 輪詢線程負(fù)責(zé)將數(shù)據(jù)發(fā)送回客戶端,而工作線程則負(fù)責(zé)處理新請求。 換句話說,輪詢器和工作線程都不會(huì)被單個(gè)用戶阻止和保留。
隨著異步處理servlet的引入,擁有上一段中的后一種情況變得更加容易。 也許這就是在Tomcat 8中將默認(rèn)連接器從BIO切換到NIO的原因之一。記住這一點(diǎn)很重要,尤其是因?yàn)樗鼈儧]有完全更改“默認(rèn)值”。
默認(rèn)值始終為“ HTTP / 1.1”,但在Tomcat 7中“使用自動(dòng)切換機(jī)制選擇基于阻塞 Java的連接器或基于APR /基于本機(jī)的連接器”,而在Tomcat 8中“使用自動(dòng)切換”選擇基于非阻塞 Java NIO的連接器或基于APR /基于本機(jī)的連接器的機(jī)制”。 為了使事情變得更艱難,他們引入了NIO2連接器。 老實(shí)說,我不知道默認(rèn)情況下使用兩個(gè)NIO連接器之一。
因此,即使您經(jīng)驗(yàn)豐富的tomcat配置,也請記住此默認(rèn)值更改。 (通常,我建議閱讀所有屬性的文檔并在服務(wù)器上使用它們)
翻譯自: https://www.javacodegeeks.com/2015/07/tomcats-default-connectors.html
tomcat默認(rèn)連接數(shù)
總結(jié)
以上是生活随笔為你收集整理的tomcat默认连接数_Tomcat的默认连接器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩托罗拉razr发布日期是什么时候
- 下一篇: 降噪耳机对耳朵好吗