1. 程式人生 > >jetty和tomcat的區別和關係

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 
  • 1

Servlet規範之外,自身還擴充套件了大量JEE特性以滿足企業級應用的需求,所以Tomcat是較重量級的,而且配置較Jetty亦複雜許多。但對於大量普通網際網路應用而言,並不需要用到Tomcat其他高階特性,所以在這種情況下,使用Tomcat是很浪費資源的。這種劣勢放在分散式環境下,更是明顯。換成Jetty,每個應用伺服器省下那幾兆記憶體,對於大的分散式環境則是節省大量資源。而且,Jetty的輕量級也使其在處理高併發細粒度請求的場景下顯得更快速高效。

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

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

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

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