創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。小編這次要給大家分享的是詳解Tomcat的線程模型中BIO模式,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
在高版本的Tomcat中,默認(rèn)的模式都是使用NIO模式,在Tomcat 9中,BIO模式的實(shí)現(xiàn)Http11Protocol甚至都已經(jīng)被刪除了。但是了解BIO的工作機(jī)制以及其優(yōu)缺點(diǎn)對學(xué)習(xí)其他模式有有幫助。只有對比后,你才能知道其他模式的優(yōu)勢在哪里。
Http11Protocol表示阻塞式的HTTP協(xié)議的通信,它包含從套接字連接接收、處理、響應(yīng)客戶端的整個過程。它主要包含JIoEndpoint組件和Http11Processor組件。啟動時,JIoEndpoint組件將啟動某個端口的監(jiān)聽,一個請求到來后將被扔進(jìn)線程池,線程池進(jìn)行任務(wù)處理,處理過程中將通過協(xié)議解析器Http11Processor組件對HTTP協(xié)議解析,并且通過適配器Adapter匹配到指定的容器進(jìn)行處理以及響應(yīng)客戶端。
這里我們結(jié)合Spring Boot中內(nèi)嵌的Tomcat來看看連接器的工作原理。建議使用低版本的Spring Boot,高版本的Spring Boot中,都已經(jīng)使用Tomcat 9了。Tomcat 9已經(jīng)刪除了BIO的實(shí)現(xiàn)模式。這邊我選擇的Spring Boot版本是2.0.0.RELEASE。
要怎么看Connector組件的源代碼
我們現(xiàn)在要開始通過Connector組件的源代碼來分析連接器組件的工作過程。但是Tomcat的源代碼這么多,我們到底要怎么看這個代碼呢?之前的文章中總結(jié)了Tomcat的啟動流程,如下圖所示:
上面的時序圖給我們分析Connector組件的源代碼提供了思路:從連接器組件的init方法和start方法開始分析。
Connector組件工作時序圖
Spring Boot中內(nèi)嵌 的Tomcat默認(rèn)使用的都是NIO模式,想要研究BIO模式還要自己折騰一番。Spring Boot中提供了WebServerFactoryCustomizer
接口,我們可以實(shí)現(xiàn)這個接口來對Servlet容器工廠進(jìn)行自定義配置。下面是我自己實(shí)現(xiàn)的一個配置類,只是簡單地將IO模型設(shè)置成了BIO模式,假如你還需要進(jìn)行其他配置也可以在里面進(jìn)行額外配置。
@Configuration public class TomcatConfig { @Bean public WebServerFactoryCustomizer tomcatCustomer() { return new TomcatCustomerConfig(); } public class TomcatCustomerConfig implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> { @Override public void customize(TomcatServletWebServerFactory factory) { if (factory != null) { factory.setProtocol("org.apache.coyote.http11.Http11Protocol"); } } } }
名稱欄目:詳解Tomcat的線程模型中BIO模式-創(chuàng)新互聯(lián)
瀏覽路徑:http://aaarwkj.com/article46/iejhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、微信小程序、外貿(mào)建站、ChatGPT、網(wǎng)站維護(hù)、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容