淺談Tomcat三種運行模式
tomcat的運行模式有3種
一、bio(blocking I/O)
即阻塞式I/O操作,表示Tomcat使用的是傳統(tǒng)的Java I/O操作(即java.io包及其子包)。是基于JAVA的HTTP/1.1連接器,Tomcat7以下版本在默認(rèn)情況下是以bio模式運行的。一般而言,bio模式是三種運行模式中性能最低的一種。我們可以通過Tomcat Manager來查看服務(wù)器的當(dāng)前狀態(tài)。(Tomcat7 或以下,在 Linux 系統(tǒng)中默認(rèn)使用這種方式)
二、nio(new I/O)
是Java SE 1.4及后續(xù)版本提供的一種新的I/O操作方式(即java.nio包及其子包)。Java nio是一個基于緩沖區(qū)、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的縮寫。它擁有比傳統(tǒng)I/O操作(bio)更好的并發(fā)運行性能。
想運行在該模式下,直接修改server.xml里的Connector節(jié)點,修改protocol為
protocol="org.apache.coyote.http11.Http11NioProtocol"
啟動后,就可以生效。
利用 Java 的異步請求 IO 處理,可以通過少量的線程處理大量的請求
三、apr
安裝起來最困難,但是從操作系統(tǒng)級別來解決異步的IO問題,大幅度的提高性能.
必須要安裝apr和native,直接啟動就支持apr。下面的修改純屬多余,僅供大家擴(kuò)充知識,但仍然需要安裝apr和native
如nio修改模式,修改protocol為org.apache.coyote.http11.Http11AprProtocol
官方對三種方式簡單對比
Java Blocking Connector Java Non Blocking Connector APR/native Connector
BIO NIO APR
Classname Http11Protocol Http11NioProtocol Http11AprProtocol
Tomcat Version 3.x onwards 6.x onwards 5.5.x onwards
Support Polling NO YES YES
Polling Size N/A maxConnections maxConnections
Read HTTP Request Blocking Non Blocking Blocking
Read HTTP Body Blocking Sim Blocking Blocking
Write HTTP Response Blocking Sim Blocking Blocking
Wait for next Request Blocking Non Blocking Non Blocking
SSL Support Java SSL Java SSL OpenSSL
SSL Handshake Blocking Non blocking Blocking
Max Connections maxConnections maxConnections maxConnections
APR項目有APR,APR-util和APR-iconv,其中APR-iconv是可選安裝的。
下載最新的APR和APR-util源碼包
4、安裝APR
1)解壓apr-1.4.6:tar -zxf apr-1.4.6 2) cd apr-1.4.6 3)依次執(zhí)行./configure make sudo make install
在apr被安裝到了/usr/local/apr目錄下面
5、 安裝APR-util
1) 解壓apr-util-1.4.1:tar -zxfapr-util-1.4.1 2) cd apr-util-1.4.1 3) 依次執(zhí)行./configure–with-apr=/usr/local/apr/bin/apr-1-config (如果不加后面的可能會報APR找不到的錯誤”checkingfor APR… no configure: error: APR could not be located. Please use the–with-apr option.” make sudo make install
apr-util也被安裝找/usr/local/apr下面
6、進(jìn)入tomcat主目錄下,在bin/tomcat-native-1.1.23-src/jni/native下面依次執(zhí)行:
./configure–with-apr=/usr/local/apr/bin/apr-1-config (如果不加后面的可能會報APR找不到的錯誤”checkingfor APR… no configure: error: APR could not be located. Please use the–with-apr option.” make sudo make install
7、 設(shè)置啟動參數(shù):
在catalina.sh 加入啟動參數(shù):
CATALINA_OPTS=”$CATALINA_OPTS-Djava.library.path=/usr/local/apr/lib”
總結(jié)
以上就是本文關(guān)于淺談Tomcat三種運行模式的全部內(nèi)容,感興趣的朋友可以繼續(xù)參閱:Tomcat開啟JMX服務(wù)方法介紹、jsp-解決文件上傳后重啟Tomcat時文件自動刪除問題等,如有不足之處,歡迎留言指出,小編一定及時回復(fù)大家并修改,希望對大家對本站多多支持!
相關(guān)文章
Java請求調(diào)用參數(shù)格式為form-data類型的接口代碼示例
這篇文章主要給大家介紹了關(guān)于Java請求調(diào)用參數(shù)格式為form-data類型的接口的相關(guān)資料,文中給出了詳細(xì)的代碼示例,對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08使用@PathVariable時候無法將參數(shù)映射到變量中的解決
這篇文章主要介紹了使用@PathVariable時候無法將參數(shù)映射到變量中的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08ServletContext讀取web資源_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了ServletContext讀取web資源,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07實例分析Java中public static void main(String args[])是什么意思
這篇文章主要介紹了實例分析Java中public static void main(String args[])的意義,詳細(xì)分析了Java主函數(shù)main關(guān)鍵字聲明的具體含義和用法,需要的朋友可以參考下2015-12-12Java開發(fā)之普通web項目轉(zhuǎn)為Maven項目的方法
這篇文章主要給大家介紹了關(guān)于Java開發(fā)之普通web項目轉(zhuǎn)為Maven項目的相關(guān)資料,文中通過圖文將轉(zhuǎn)換的方法步驟介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12Java?CopyOnWriteArrayList源碼超詳細(xì)分析
為了將讀取的性能發(fā)揮到極致,jdk中提供了CopyOnWriteArrayList類,下面這篇文章主要給大家介紹了關(guān)于java中CopyOnWriteArrayList源碼解析的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11Java中的HashMap弱引用之WeakHashMap詳解
這篇文章主要介紹了Java中的HashMap弱引用之WeakHashMap詳解,當(dāng)內(nèi)存空間不足,Java虛擬機(jī)寧愿拋出OutOfMemoryError錯誤,使程序異常終止,也不會靠隨意回收具有強(qiáng)引用的對象來解決內(nèi)存不足的問題,需要的朋友可以參考下2023-09-09