Jetty 的工做原理以及與 Tomcat 的比較

1. Jetty的基礎架構

Jetty目前是一個比較背看好的Servlet引擎,它的架構比較簡單,也是一個擴展性強和很是靈活的應用服務器,它有一個基礎數據類型,這個數據類型就是Handler,全部能夠被擴展的組件均可以做爲一個Handler,添加到Server中,Jetty就是幫你管理這些Handler。web

下圖是Jetty的基礎架構圖,整個Jetty的核心組件有Server和Connector兩個組件構成,整個Server組件是基於Handler容器工做的,它相似於Tomcat的Container容器。Jetty中另一個必不可少的組件是Connector,它負責接受客戶端的鏈接請求,並將請求分配給一個處理隊列去執行。服務器

2. Jetty和Tomcat的比較

2.1 相同點

Tomcat和Jetty都是一種Servlet引擎,他們都支持標準的Servlet規範和JavaEE的規範。架構

2.2 不一樣點

1. 架構比較性能

  • Jetty的架構比Tomcat的更爲簡單
  • Jetty的架構是基於Handler來實現的,主要的擴展功能均可以用Handler來實現,擴展簡單。
  • Tomcat的架構是基於容器設計的,進行擴展是須要了解Tomcat的總體設計結構,不易擴展。

2. 性能比較spa

  • Jetty和Tomcat性能方面差別不大
  • Jetty能夠同時處理大量鏈接並且能夠長時間保持鏈接,適用於web聊天應用等等。
  • Jetty的架構簡單,所以做爲服務器,Jetty能夠按需加載組件,減小不須要的組件,減小了服務器內存開銷,從而提升服務器性能。
  • Jetty默認採用NIO結束在,在處理I/O請求上更佔優點,在處理靜態資源時,性能較高
  •  
  • Tomcat適合處理少數很是繁忙的連接,也就是說連接生命週期短的話,Tomcat的整體性能更高。
  • Tomcat默認採用BIO處理I/O請求,在處理靜態資源時,性能較差。

3. 其餘比較.net

  • Jetty的應用更加快速,修改簡單,對新的Servlet規範的支持較好。
  • Tomcat目前應用比較普遍,對JavaEE和Servlet的支持更加全面,不少特性會直接集成進來。

 

參考:https://www.oschina.net/question/129540_28126設計

參考:http://blog.csdn.net/classicbear/article/details/6968930blog

相關文章
相關標籤/搜索