(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種:
- HTTP連接器 2) SSL連接器 3) AJP 1.3連接器 4) proxy連接器
Tomcat Connector(連接器)有三種運行模式:
- bio(blocking I/O)
即阻塞式I/O操作,表示Tomcat使用的是傳統的Java I/O操作(即java.io包及其子包)。
一個線程處理一個請求,缺點:並發量高時,線程數較多,浪費資源。 - nio(new I/O)
Java nio是一個基於緩沖區、並能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的縮寫。它擁有比傳統I/O操作(bio)更好的並發運行性能。
利用 Java 的異步請求 IO 處理,可以通過少量的線程處理大量的請求。 - apr(Apache Portable Runtime/Apache可移植運行時)
Tomcat將以JNI的形式調用Apache HTTP服務器的核心動態鏈接庫來處理文件讀取或網絡傳輸操作,從而大大地提高Tomcat對靜態文件的處理性能。Tomcat apr也是在Tomcat上運行高並發應用的首選模式。