亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Tomcat的異步通訊配置----使用NIO

系統 2132 0

Tomcat 6.X實現了JCP的Servlet 2.5和JSP2.1的規范,并且包括其它很多有用的功能,使它成為開發
和部署web應用和web服務的堅實平臺。
?????? NIO (No-blocking I/O)從JDK 1.4起,NIO API作為一個基于緩沖區,并能提供非阻塞I/O操作的API
被引入。?


?????? 作為開源web服務器的java實現,tomcat幾乎就是web開發者開發、測試的首選,有很多其他商業服務
器的開發者也會優先選擇tomcat作為開發時候使用,而在部署的時候,把應用發布在商業服務器上。也有
許多商業應用部署在tomcat上,tomcat承載著其核心的應用。但是很多開發者很迷惑,為什么在自己的應
用里使用tomcat作為平臺的時候,而并發用戶超過一定數量,服務器就變的非常繁忙,而且很快就出現了
connection refuse的錯誤。但是很多商業應用部署在tomcat上運行卻安然無恙。

????? 其中有個很大的原因就是,配置良好的tomcat都會使用APR(Apache Portable Runtime),APR是
Apache HTTP Server2.x的核心,它是高度可移植的本地庫,它使用高性能的UXIN I/O操作,低性能的
java io操作,但是APR對很多Java開發者而言可能稍稍有點難度,在很多OS平臺上,你可能需要重新編
譯APR。但是從Tomcat6.0以后, Java開發者很容易就可以是用NIO的技術來提升tomcat的并發處理能力。
但是為什么NIO可以提升tomcat的并發處理能力呢,我們先來看一下java 傳統io與 java NIO的差別。
?????
Java 傳統的IO操作都是阻塞式的(blocking I/O), 如果有socket的編程基礎,你會接觸過堵塞socket和
非堵塞socket,堵塞socket就是在accept、read、write等IO操作的的時候,如果沒有可用符合條件的資
源,不馬上返回,一直等待直到有資源為止。而非堵塞socket則是在執行select的時候,當沒有資源的時
候堵塞,當有符合資源的時候,返回一個信號,然后程序就可以執行accept、read、write等操作,一般來
說,如果使用堵塞socket,通常我們通常開一個線程accept socket,當讀完這次socket請求的時候,開一
個單獨的線程處理這個socket請求;如果使用非堵塞socket,通常是只有一個線程,一開始是select狀,
當有信號的時候可以通過 可以通過多路復用(Multiplexing)技術傳遞給一個指定的線程池來處理請求,然
后原來的線程繼續select狀態。 最簡單的多路復用技術可以通過java管道(Pipe)來實現。換句話說,如果
客戶端的并發請求很大的時候,我們可以使用少于客戶端并發請求的線程數來處理這些請求,而這些來不
及立即處理的請求會被阻塞在java管道或者隊列里面,等待線程池的處理。請求 聽起來很復雜,在這個架
構當道的java 世界里,現在已經有很多優秀的NIO的架構方便開發者使用,比如Grizzly,Apache Mina等
等,如果你對如何編寫高性能的網絡服務器有興趣,你可以研讀這些源代碼。

????? 簡單說一下,在web服務器上阻塞IO(BIO)與NIO一個比較重要的不同是,我們使用BIO的時候往往會
為每一個web請求引入多線程,每個web請求一個單獨的線程,所以并發量一旦上去了,線程數就上去
了,CPU就忙著線程切換,所以BIO不合適高吞吐量、高可伸縮的web服務器;而NIO則是使用單線程(單
個CPU)或者只使用少量的多線程(多CPU)來接受Socket,而由線程池來處理堵塞在pipe或者隊列里的請
求.這樣的話,只要OS可以接受TCP的連接,web服務器就可以處理該請求。大大提高了web服務器的可
伸縮性。

??? 我們來看一下配置,你只需要在server.xml里把 HTTP Connector做如下更改,

??? <Connector port="8080" protocol="HTTP/1.1"?
?????????????? connectionTimeout="20000"?
?????????????? redirectPort="8443" />
??? 改為
??? <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"?
?????????????? connectionTimeout="20000"?
?????????????? redirectPort="8443" />

然后啟動服務器,你會看到org.apache.coyote.http11.Http11NioProtocol start的信息,表示NIO已經啟動。其他的配置請參考官方配置文檔。

Enjoy it.

最后貼上官方文檔上對tomcat的三種Connector的方式做一個簡單比較,
????

      Java Blocking Connector       Java Nio Blocking Connector       APR Connector

Classname         Http11Protocol                  Http11NioProtocol         Http11AprProtocol

Tomcat Version   3.x 4.x 5.x 6.x                       6.x                     5.5.x 6.x

Support Polling         NO                             YES                        YES

Polling Size           N/A                   Unlimited - Restricted by mem        Unlimited

Read HTTP Request     Blocking                     Blocking                       Blocking

Read HTTP Body        Blocking                     Blocking                       Blocking

Write HTTP Response   Blocking                     Blocking                       Blocking

SSL Support           Java SSL                     Java SSL                       OpenSSL

SSL Handshake         Blocking                     Non blocking                   Blocking

Max Connections       maxThreads                   See polling size               See polling size
    

Tomcat的異步通訊配置----使用NIO


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 手机看片福利日韩欧美看片 | 国产精品久久视频 | 韩国午夜影院 | 2019年国产不卡在线刷新 | 久久se精品一区二区影院 | 久久99久久99精品观看 | 欧美日本一道高清免费3区 欧美日本一道免费一区三区 | 青青青爽在线视频观看大全 | 大美女久久久久久j久久 | 成人区在线观看免费视频 | 日韩欧美中文字幕一区 | 中文字幕在线免费看 | 国产成人精品s8p视频 | 成人免费久久精品国产片久久影院 | 97婷婷狠狠成人免费视频 | 天天插夜夜 | zzijzzij亚洲日本护士 | 美女在线国产 | 天天干天天操 | 欧美日产| 综合网在线观看 | 日韩午夜网站 | 国内精品久久久久久影院8f | 青青青青久在线观看视频 | 亚洲五月综合缴情婷婷 | 国产妇乱子伦视频免费 | 天天射天天射天天干 | 色综合久久综合网欧美综合网 | 中文字幕亚洲精品日韩精品 | 久草手机视频在线 | 好男人午夜影院 | 日韩免费一级毛片欧美一级日韩片 | 久久久久在线视频 | 天天看天天干 | 亚洲色视频 | 久久国产免费观看 | 91精品啪在线观看国产老湿机 | 欧美性猛交xxx嘿人猛交 | 国产成年人网站 | 久久福利在线 | 爽爽影院免费观看视频 |