淺談Tomcat三種運(yùn)行模式
tomcat的運(yùn)行模式有3種
一、bio(blocking I/O)
即阻塞式I/O操作,表示Tomcat使用的是傳統(tǒng)的Java I/O操作(即java.io包及其子包)。是基于JAVA的HTTP/1.1連接器,Tomcat7以下版本在默認(rèn)情況下是以bio模式運(yùn)行的。一般而言,bio模式是三種運(yùn)行模式中性能最低的一種。我們可以通過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是一個(gè)基于緩沖區(qū)、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的縮寫。它擁有比傳統(tǒng)I/O操作(bio)更好的并發(fā)運(yùn)行性能。
想運(yùn)行在該模式下,直接修改server.xml里的Connector節(jié)點(diǎn),修改protocol為
protocol="org.apache.coyote.http11.Http11NioProtocol"
啟動(dòng)后,就可以生效。
利用 Java 的異步請求 IO 處理,可以通過少量的線程處理大量的請求
三、apr
安裝起來最困難,但是從操作系統(tǒng)級(jí)別來解決異步的IO問題,大幅度的提高性能.
必須要安裝apr和native,直接啟動(dòng)就支持apr。下面的修改純屬多余,僅供大家擴(kuò)充知識(shí),但仍然需要安裝apr和native
如nio修改模式,修改protocol為org.apache.coyote.http11.Http11AprProtocol
官方對(duì)三種方式簡單對(duì)比
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項(xiàng)目有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 (如果不加后面的可能會(huì)報(bào)APR找不到的錯(cuò)誤”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 (如果不加后面的可能會(huì)報(bào)APR找不到的錯(cuò)誤”checkingfor APR… no configure: error: APR could not be located. Please use the–with-apr option.” make sudo make install
7、 設(shè)置啟動(dòng)參數(shù):
在catalina.sh 加入啟動(dòng)參數(shù):
CATALINA_OPTS=”$CATALINA_OPTS-Djava.library.path=/usr/local/apr/lib”
總結(jié)
以上就是本文關(guān)于淺談Tomcat三種運(yùn)行模式的全部內(nèi)容,感興趣的朋友可以繼續(xù)參閱:Tomcat開啟JMX服務(wù)方法介紹、jsp-解決文件上傳后重啟Tomcat時(shí)文件自動(dòng)刪除問題等,如有不足之處,歡迎留言指出,小編一定及時(shí)回復(fù)大家并修改,希望對(duì)大家對(duì)本站多多支持!
相關(guān)文章
Java服務(wù)端服務(wù)監(jiān)控:Prometheus與Spring Boot Actuator的集成方式
本文介紹了如何將Prometheus與SpringBootActuator集成,實(shí)現(xiàn)對(duì)Java服務(wù)端應(yīng)用的監(jiān)控,通過集成,可以利用Prometheus的強(qiáng)大監(jiān)控能力,及時(shí)發(fā)現(xiàn)和解決性能問題2024-12-12
SpringBoot發(fā)送異步郵件流程與實(shí)現(xiàn)詳解
這篇文章主要介紹了SpringBoot發(fā)送異步郵件流程與實(shí)現(xiàn)詳解,Servlet階段郵件發(fā)送非常的復(fù)雜,如果現(xiàn)代化的Java開發(fā)是那個(gè)樣子該有多糟糕,現(xiàn)在SpringBoot中集成好了郵件發(fā)送的東西,而且操作十分簡單容易上手,需要的朋友可以參考下2024-01-01
Java調(diào)用第三方http接口的四種方式總結(jié)
這篇文章主要給大家介紹了關(guān)于Java調(diào)用第三方http接口的四種方式,在實(shí)際開發(fā)中我們經(jīng)常會(huì)與第三方公司進(jìn)行合作,接入第三方接口,文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下2023-08-08
Mac Book中Java環(huán)境變量設(shè)置的方法
本文給大家介紹mac book 中設(shè)置java環(huán)境變量的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-04-04
SpringBoot啟動(dòng)后啟動(dòng)內(nèi)嵌瀏覽器的方法
這篇文章主要介紹了SpringBoot啟動(dòng)后啟動(dòng)內(nèi)嵌瀏覽器的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
SpringCloud Feign遠(yuǎn)程調(diào)用實(shí)現(xiàn)詳解
Feign是Netflix公司開發(fā)的一個(gè)聲明式的REST調(diào)用客戶端; Ribbon負(fù)載均衡、 Hystrⅸ服務(wù)熔斷是我們Spring Cloud中進(jìn)行微服務(wù)開發(fā)非?;A(chǔ)的組件,在使用的過程中我們也發(fā)現(xiàn)它們一般都是同時(shí)出現(xiàn)的,而且配置也都非常相似2022-11-11
Netty分布式固定長度解碼器實(shí)現(xiàn)原理剖析
這篇文章主要為大家介紹了Netty分布式固定長度解碼器原理剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03

