Jetty和Tomcat
最近在學(xué)習(xí)Gitee里面的Star項(xiàng)目,發(fā)現(xiàn)有些項(xiàng)目已經(jīng)開始使用Jetty,大致查了一下發(fā)現(xiàn),Google已經(jīng)放棄了Tomcat,把一些服務(wù)遷移到了Jetty上,對(duì)于這個(gè)黑馬,我挺感興趣的,所以把它的大致情況也整理分享下:
Jetty是什么,背后是哪家公司提供技術(shù)支持?(部分解釋來自其官網(wǎng))
如果我們?cè)诰W(wǎng)上搜索會(huì)發(fā)現(xiàn),其實(shí)Jetty的全稱是Eclipse Jetty,它是Eclipse提供的Web服務(wù)器和javax.servlet容器,以及對(duì)HTTP / 2,WebSocket,OSGi,JMX,JNDI,JAAS和許多其他集成的支持。這些組件是開源的,可用于商業(yè)用途和分發(fā)。
Eclipse Jetty用于開發(fā)和生產(chǎn)中的各種項(xiàng)目和產(chǎn)品。Jetty可以輕松嵌入到設(shè)備,工具,框架,應(yīng)用程序服務(wù)器和集群中。有關(guān)Jetty的更多用途,請(qǐng)參閱Jetty Powered頁面。
目前推薦使用的版本是Jetty 9,可以在Jetty下載頁面上獲得。?另外還有Jetty 8和Jetty 7的最新維護(hù)版本,
Jetty項(xiàng)目自2009年以來一直在Eclipse基金會(huì)托管。在此之前,Jetty的早期版本部分或完全存在于Codehaus和Sourceforge的Jetty項(xiàng)目中。其特征及應(yīng)用大致說明如下:
|
|
具體的下載地址是:?https://www.eclipse.org/jetty/download.html
關(guān)于Jetty在Windows下的安裝部署可詳細(xì)訪問以下CDSN伙伴的網(wǎng)站,再次不做贅余介紹:
https://blog.csdn.net/Angelia620/article/details/84636090
?
Jetty和Tomcat的對(duì)比說明:
Jetty更輕量級(jí)。這是相對(duì)Tomcat而言的。?
由于Tomcat除了遵循Java?Servlet規(guī)范之外,自身還擴(kuò)展了大量JEE特性以滿足企業(yè)級(jí)應(yīng)用的需求,所以Tomcat是較重量級(jí)的,而且配置較Jetty亦復(fù)雜許多。但對(duì)于大量普通互聯(lián)網(wǎng)應(yīng)用而言,并不需要用到Tomcat其他高級(jí)特性,所以在這種情況下,使用Tomcat是很浪費(fèi)資源的。這種劣勢(shì)放在分布式環(huán)境下,更是明顯。換成Jetty,每個(gè)應(yīng)用服務(wù)器省下那幾兆內(nèi)存,對(duì)于大的分布式環(huán)境則是節(jié)省大量資源。而且,Jetty的輕量級(jí)也使其在處理高并發(fā)細(xì)粒度請(qǐng)求的場景下顯得更快速高效。
jetty更靈活,體現(xiàn)在其可插拔性和可擴(kuò)展性,更易于開發(fā)者對(duì)Jetty本身進(jìn)行二次開發(fā),定制一個(gè)適合自身需求的Web Server。相比之下,重量級(jí)的Tomcat原本便支持過多特性,要對(duì)其瘦身的成本遠(yuǎn)大于豐富Jetty的成本。用自己的理解,即增肥容易減肥難。
然而,當(dāng)支持大規(guī)模企業(yè)級(jí)應(yīng)用時(shí),Jetty也必須要擴(kuò)展,在這場景下Tomcat便是更優(yōu)的。
相同點(diǎn):
不同點(diǎn):
架構(gòu)比較?
Jetty的架構(gòu)比Tomcat的更為簡單?
Jetty的架構(gòu)是基于Handler來實(shí)現(xiàn)的,主要的擴(kuò)展功能都可以用Handler來實(shí)現(xiàn),擴(kuò)展簡單。?
Tomcat的架構(gòu)是基于容器設(shè)計(jì)的,進(jìn)行擴(kuò)展是需要了解Tomcat的整體設(shè)計(jì)結(jié)構(gòu),不易擴(kuò)展。
性能比較?
Jetty和Tomcat性能方面差異不大?
Jetty可以同時(shí)處理大量連接而且可以長時(shí)間保持連接,適合于web聊天應(yīng)用等等。?
Jetty的架構(gòu)簡單,因此作為服務(wù)器,Jetty可以按需加載組件,減少不需要的組件,減少了服務(wù)器內(nèi)存開銷,從而提高服務(wù)器性能。?
Jetty默認(rèn)采用NIO結(jié)束在處理I/O請(qǐng)求上更占優(yōu)勢(shì),在處理靜態(tài)資源時(shí),性能較高
少數(shù)非常繁忙;Tomcat適合處理少數(shù)非常繁忙的鏈接,也就是說鏈接生命周期短的話,Tomcat的總體性能更高。?
Tomcat默認(rèn)采用BIO處理I/O請(qǐng)求,在處理靜態(tài)資源時(shí),性能較差。
其它比較?
Jetty的應(yīng)用更加快速,修改簡單,對(duì)新的Servlet規(guī)范的支持較好。?
Tomcat目前應(yīng)用比較廣泛,對(duì)JavaEE和Servlet的支持更加全面,很多特性會(huì)直接集成進(jìn)來
Jetty的特性及適用場景說明:
?
根據(jù)Jetty的特性分析,我們可以發(fā)現(xiàn),Jetty在互聯(lián)網(wǎng)企業(yè),分布式環(huán)境下,在處理高并發(fā)細(xì)粒度請(qǐng)求的場景下,更加靈活、高效,同時(shí)支持做二次開發(fā),可組件進(jìn)行靈活的重構(gòu)或增減
在對(duì)于大規(guī)模企業(yè)級(jí)應(yīng)用時(shí),因Jetty需要進(jìn)行擴(kuò)展,而Tomcat則可拿來即用,更方便些。但在云計(jì)算等云化服務(wù)越來越盛行的時(shí)代,相信Jetty會(huì)有更加廣闊的應(yīng)用場景,同時(shí)其開源、簡單、靈活的特性,也會(huì)為其更加廣泛的應(yīng)用鋪路,小而美,比大而全,會(huì)更具有競爭優(yōu)勢(shì)
?
建議:
所以趕快學(xué)起來吧,當(dāng)前階段可以根據(jù)實(shí)際需要,自由選擇,以業(yè)務(wù)場景為主要衡量目標(biāo)
?
總結(jié)
以上是生活随笔為你收集整理的Jetty和Tomcat的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用vs2017 作为matlab201
- 下一篇: IE6下png图片透明代码