Tomcat的工作模式&運行模式


Tomcat的工作模式&運行模式

 

1、三種工作模式

Tomcat作為servlet容器,有三種工作模式:

1、獨立的servlet容器,servlet容器是web服務器的一部分;

2、進程內的servlet容器,servlet容器是作為web服務器的插件和java容器的實現,web服務器插件在內部地址空間打開一個jvm使得java容器在內部得以運行。反應速度快但伸縮性不足;

3、進程外的servlet容器,servlet容器運行於web服務器之外的地址空間,並作為web服務器的插件和java容器實現的結合。反應時間不如進程內但伸縮性和穩定性比進程內優;

 

進入Tomcat的請求可以根據Tomcat的工作模式分為如下兩類:

Tomcat作為應用程序服務器:請求來自於前端的web服務器,這可能是Apache, IIS, Nginx等;

Tomcat作為獨立服務器:請求來自於web瀏覽器;

 

2、三種運行模式

常見於server.xml中的連接器類型通常有4種:

  1)HTTP連接器

  2)SSL連接器

  3)AJP 1.3連接器

  4)proxy連接器

Tomcat Connector(連接器)有三種運行模式:

  1)bio(blocking I/O)
  即阻塞式I/O操作,表示Tomcat使用的是傳統的Java I/O操作(即java.io包及其子包)。是基於JAVA的HTTP/1.1連接器,Tomcat7以下版本在默認情況下是以bio模式運行的。一般而言,bio模式是三種運行模式中性能最低的一種。我們可以通過Tomcat Manager來查看服務器的當前狀態。(Tomcat7 或以下,在 Linux 系統中默認使用這種方式)

  一個線程處理一個請求,缺點:並發量高時,線程數較多,浪費資源

 

server.xml 文件中的配置 (端口號自己設定,只要不占用就行)

<Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443" />

 

 

  2)nio(new I/O)
  nio是Java SE 1.4及后續版本提供的一種新的I/O操作方式(即java.nio包及其子包)。

  Java nio是一個基於緩沖區、並能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的縮寫。它擁有比傳統I/O操作(bio)更好的並發運行性能。

  要讓Tomcat以nio模式來運行只需要在Tomcat安裝目錄/conf/server.xml 中將對應的中protocol的屬性值改為 org.apache.coyote.http11.Http11NioProtocol即可

  利用 Java 的異步請求 IO 處理,可以通過少量的線程處理大量的請求

  注意: Tomcat8 以上版本在 Linux 系統中,默認使用的就是NIO模式,不需要額外修改 ,Tomcat7必須修改Connector配置來啟動

 

server.xml 文件中的配置

<Connector port="9090"  protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" />

 

 

  3)apr(Apache Portable Runtime/Apache可移植運行時)

  Tomcat將以JNI的形式調用Apache HTTP服務器的核心動態鏈接庫來處理文件讀取或網絡傳輸操作,從而大大地提高Tomcat對靜態文件的處理性能。Tomcat apr也是在Tomcat上運行高並發應用的首選模式。從操作系統級別來解決異步的IO問題

  APR是使用原生C語言編寫的非堵塞I/O,利用了操作系統的網絡連接功能,速度很快。 

  但是需先安裝apr和native,若直接啟動就支持apr,能大幅度提升性能,不亞於魔獸開局爆高科技兵種,威力強大.

 

server.xml 文件中的配置

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
URIEncoding="UTF-8"
maxConnections="10000"
maxThreads="2000"
acceptCount="2000"
minSpareThreads="100"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
enableLookups="false"
disableUploadTimeout="true"
connectionTimeout="20000"
redirectPort="8443" />

 

配置之前首先安裝APR以及與 Tomcat-native 整合。

 

安裝直通車:

https://blog.csdn.net/strivenoend/article/details/79178385?ops_request_misc=&request_id=&biz_id=102&utm_term=Tomcat%25203%25E7%25A7%258D%25E5%25B7%25A5%25E4%25BD%259C%25E6%25A8%25A1%25E5%25BC%258F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-79178385.first_rank_v2_pc_rank_v29

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM