1.背景介紹
2.知識剖析
3.常見問題
4.解決方案
5.編碼實戰(zhàn)
6.擴展思考
7.參考文獻(xiàn)
8.更多討論
1.背景介紹
Tomcat服務(wù)器
Tomcat是SUN公司推出的一個優(yōu)秀的Servlet容器,由Apache彤委、Sun 和其他一些公司及個人共同開發(fā)而成鞭铆。
Tomcat本身完全用java語言編寫。因為Tomcat 技術(shù)先進(jìn)焦影、性能穩(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ù)器來對客戶進(jìn)行響應(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)進(jì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è)計的牛欢,進(jìn)行擴展是需要了解Tomcat的整體設(shè)計結(jié)構(gòu),不易擴展淆游。
2傍睹、靈活性方面,Jetty更靈活犹菱,體現(xiàn)在其可插拔性和可擴展性焰望,更易于開發(fā)者對Jetty本身進(jìn)行二次開發(fā),定制一個適合自身需求的Web Server已亥。
相比之下,重量級的Tomcat因為本來就支持過多特性来屠,要對其精簡虑椎,比對jetty進(jìn)行拓展都更難。
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.參考文獻(xiàn)
http://blog.csdn.net/lihua2915/article/details/5997105
8.更多討論
除了這幾種服務(wù)器,還有哪些重要的服務(wù)器丛楚?
Jboss族壳,weblogic,apache等趣些。
可否使用nginx對這幾種服務(wù)器設(shè)置均衡負(fù)載配置仿荆?
可以,nginx反向代理這幾種服務(wù)器就行了喧务。