1.tomcat NIO配置
今天在查看日志時發現tomcat的Socket連接方式為bio,於是我想既然有bio那肯定有nio。果然,一查就發現tomcat在6.0之后就可以配置nio的方式。nio方式比bio具有更好的並發性,如果Web應用需要更好的並發性能,當然是使用nio方式了。配置具體方法如下:
將Service.xml文件下的內容
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
改為
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
那么在啟動tomcat時可以查看到tomcat已經以nio方式啟動
同時為了獲得更好的並發性還可以配置線程池
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
2.Tomcat Connector(Tomcat連接器)有bio、nio、apr三種運行模式
bio
bio(blocking I/O,阻塞式I/O操作),表示Tomcat使用的是傳統的Java I/O操作(即java.io包及其子包)。
默認的模式,性能最差,沒有經過任何優化處理和支持。
nio
nio(non-blocking I/O),Java SE 1.4及后續版本提供的一種新的I/O操作方式(即java.nio包及其子包)。Java nio是一個基於緩沖區、並能提供非阻塞I/O操作的Java API。擁有比傳統I/O操作(bio)更好的並發運行性能。
apr
apr(Apache Portable Runtime/Apache可移植運行時庫),Tomcat將以JNI的形式調用Apache HTTP服務器的核心動態鏈接庫來處理文件讀取或網絡傳輸操作,從而大大地提高Tomcat對靜態文件的處理性能。從操作系統級別來解決異步的IO問題,大幅度的提高性能。 Tomcat apr也是在Tomcat上運行高並發應用的首選模式。