jetty,resin,tomcat的差別在哪里,在線上服務(wù)應(yīng)該選擇哪一種WEB服務(wù)器?


jetty,resin,tomcat的差別

1.背景介紹

2.知識剖析

3.常見問題

4.解決方案

5.編碼實戰(zhàn)

6.擴展思考

7.參考文獻

8.更多討論

1.背景介紹

Tomcat服務(wù)器

Tomcat是SUN公司推出的一個優(yōu)秀的Servlet容器,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。

Tomcat本身完全用java語言編寫。因為Tomcat 技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。

特點:

1、提供了可被服務(wù)器加載并執(zhí)行的程序代碼,并服務(wù)于來自客戶端的請求。

2、Servlet不依賴瀏覽器,是允許在服務(wù)器端,所以不管瀏覽器是否支持java,都能請求訪問servlet。

Resin服務(wù)器

Resin是CAUCHO公司的產(chǎn)品,是一個非常流行的application server,對servlet和JSP提供了良好的支持,性能也比較優(yōu)良,resin同樣也采用JAVA語言開發(fā)。

Resin提供了最快的jsp/servlets運行平臺。在java和javascript的支持下,Resin可以為任務(wù)靈活選用合適的開發(fā)語言。

特點:

1、Resin包含了很多可靠的特性,包括服務(wù)器自動重啟、檢測并重啟死鎖的服務(wù)器、管理JVM內(nèi)存以防止內(nèi)存泄露等。

2、Resin可以將多個服務(wù)器作為一個服務(wù)器來對客戶進行響應(yīng),從而增強服務(wù)器的擴展能力。

3、Resin可實現(xiàn)持久和分布的sessions:持久的session能夠在服務(wù)器重啟的時候保持現(xiàn)有的Http會話,分布式的session可以在多個服務(wù)器之間共享Http會話的狀態(tài)。

Jetty服務(wù)器

Jetty是一個開源、基于標(biāo)準(zhǔn)、全功能實現(xiàn)的JAVA服務(wù)器,Jetty也是使用Java語言編寫的,

它的API以一組JAR包的形式發(fā)布。開發(fā)人員可以將Jetty容器實例化成一個對象,可以迅速為一些獨立運行的Java應(yīng)用提供網(wǎng)絡(luò)和web連接。

特點:

1、Jetty嵌入比較便利,它設(shè)計之初就是作為一個優(yōu)秀的組件來設(shè)計的,因此Jetty可以非常容易的嵌入到應(yīng)用程序當(dāng)中而不需要程序為了使用Jetty做修改。

2、Jetty是輕量的web服務(wù)器,一般來說,它的默認(rèn)配置便可以滿足日常大部分需求,

如果要完成較為復(fù)雜的功能,只需修改相關(guān)的xml文件。jetty的嵌入只需少量的代碼就可以做到。

3、Jetty易拓展,有許多非常良好的接口,因此在Jetty的某種實現(xiàn)無法滿足用戶的需要時,用戶可以非常方便地對Jetty的某些實現(xiàn)進行修改,使得Jetty適用于特殊的應(yīng)用程序的需求。

2.知識剖析

Tomcat和Resin的區(qū)別

相同點:他們都是用java編寫的,都是web服務(wù)器,并且支持集群部署。

不同點:

1、速度方面,Resin比Tomcat快2倍以上,不過Tomcat也很快,所以這個差別幾乎感受不到。

2、開關(guān)機制上方面,Resin要比Tomcat好,比如修改了配置文件之后,Resin是會自動重啟的,而Tomcat需要人工手動關(guān)閉并重啟。

3、報錯方面,Tomcat比較詳細(xì),一個小小的錯誤也會用大篇幅來描述,而Resin則相對簡潔明確一些。

Tomcat和Jetty的區(qū)別

相同點:他們同樣是用java編寫,都是一種Servlet引擎,他們都支持標(biāo)準(zhǔn)的servlet規(guī)范和JavaEE的規(guī)范。

不同點:

1、架構(gòu)方面,Jetty的架構(gòu)是基于Handler來實現(xiàn)的,主要的擴展功能都可以用Handler來實現(xiàn),擴展簡單。

Tomcat的架構(gòu)是基于容器設(shè)計的,進行擴展是需要了解Tomcat的整體設(shè)計結(jié)構(gòu),不易擴展。

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

相比之下,重量級的Tomcat因為本來就支持過多特性,要對其精簡,比對jetty進行拓展都更難。

3、處理性能方面,Tomcat適合處理少數(shù)非常繁忙的鏈接,也就是說鏈接生命周期短的話,Tomcat的總體性能更高。另外,Jetty在處理靜態(tài)資源時,性能優(yōu)于Tomcat。

3.常見問題

在線上服務(wù)應(yīng)該選擇哪一種WEB服務(wù)器?

4.解決方案

這些服務(wù)器各有優(yōu)劣,選擇服務(wù)器時應(yīng)該先參考項目,預(yù)估規(guī)模大小等。比如大規(guī)模的企業(yè)級應(yīng)用,Tomcat自身擴展了大量JEE特性可滿足企業(yè)級應(yīng)用的需求,

所以這種情況下應(yīng)選用Tomcat。

5.編碼實戰(zhàn)

6.擴展思考

7.參考文獻

http://blog.csdn.net/lihua2915/article/details/5997105

8.更多討論

除了這幾種服務(wù)器,還有哪些重要的服務(wù)器?

Jboss,weblogic,apache等。

可否使用nginx對這幾種服務(wù)器設(shè)置均衡負(fù)載配置?

可以,nginx反向代理這幾種服務(wù)器就行了。

PPT鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容