知識點:
Tomcat支援的IO模型說明
BIO 與NIO的區別
描述 | |
---|---|
BIO | 阻塞式IO,即Tomcat使用傳統的java.io進行操作。該模式下每個請求都會建立一個執行緒,對效能開銷大,不適合高並行場景。優點是穩定,適合連線數目小且固定架構。 |
NIO | 非阻塞式IO,jdk1.4 之後實現的新IO。該模式基於多路複用選擇器監測連線狀態在通知執行緒處理,從而達到非阻塞的目的。比傳統BIO能更好的支援並行效能。Tomcat 8.0之後預設採用該模式 |
APR | 全稱是 Apache Portable Runtime/Apache可移植執行庫),是Apache HTTP伺服器的支援庫。可以簡單地理解為,Tomcat將以JNI的形式呼叫Apache HTTP伺服器的核心動態連結庫來處理檔案讀取或網路傳輸操作。使用需要編譯安裝APR 庫 |
AIO | 非同步非阻塞式IO,jdk1.7後之支援 。與nio不同在於不需要多路複用選擇器,而是請求處理執行緒執行完程進行回撥調知,已繼續執行後續操作。Tomcat 8之後支援。 |
使用指定IO模型的設定方式: 設定 server.xml 檔案當中的 <Connector protocol="HTTP/1.1"> 修改即可。 預設設定 8.0 protocol=「HTTP/1.1」 8.0 之前是 BIO 8.0