Jetty和Tomcat的選擇:按場景而定

fmms 13年前發布 | 498K 次閱讀 Jetty Tomcat 應用服務器

Jetty和Tomcat為目前全球范圍內最著名的兩款開源的webserver/servlet容器。由于它們的實現都遵循Java Servlet規范,一個Java Web應用部署于兩款容器的任意一個皆可。但選擇哪個更優?也許這得看場景。 


近期很多人關注Jetty,也許主要是因為GAE放棄了Tomcat而選擇了Jetty。于是,以很直接的想法,Jetty更符合GAE的需求、即云環境的需求,亦分布式環境的需求。

那Jetty與Tomcat比較,有哪差異呢? 自己簡單做了些調研,也請救了熟悉Tomcat和Jetty的朋友和師兄,得出以下結論:
 

    1)Jetty更輕量級。這是相對Tomcat而言的。

    由于Tomcat除了遵循Java Servlet規范之外,自身還擴展了大量JEE特性以滿足企業級應用的需求,所以Tomcat是較重量級的,而且配置較Jetty亦復雜許多。但對于大量普通互聯網應用而言,并不需要用到Tomcat其他高級特性,所以在這種情況下,使用Tomcat是很浪費資源的。這種劣勢放在分布式環境下,更是明顯。換成Jetty,每個應用服務器省下那幾兆內存,對于大的分布式環境則是節省大量資源。而且,Jetty的輕量級也使其在處理高并發細粒度請求的場景下顯得更快速高效。

 

    2)Jetty更靈活,體現在其可插拔性和可擴展性,更易于開發者對Jetty本身進行二次開發,定制一個適合自身需求的Web Server。

    相比之下,重量級的Tomcat原本便支持過多特性,要對其瘦身的成本遠大于豐富Jetty的成本。用自己的理解,即增肥容易減肥難。

 

    3)然而,當支持大規模企業級應用時,Jetty也許便需要擴展,在這場景下Tomcat便是更優的。


    總結:Jetty更滿足公有云的分布式環境的需求,而Tomcat更符合企業級環境。

 
    GAE放棄了Tomcat,選擇了Jetty,正是因為Jetty的體積和靈活性,Google可以更好地定制一個足夠小的Java Web Server為其GAE服務。
     而Tomcat為滿足更多的企業級需求,增加了JEE特性,在服務企業級應用時,它的支持優于Jetty。然而,即使Tomcat性能略優于Jetty,但對于大多非企業級應用而言,配置復雜體積龐大的Tomcat顯得過于重量級。
 
    正因為這個,實驗室的云平臺實現便是把云平臺本身的門戶網站放在Tomcat內,而云臺托管的Java Web應該是部署在Jetty內的。
 
 
參考文章:
 
Tomcat和Jetty更多比較請看:

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!