Tomcat Jboss Glassfish 三種常見web容器比較
https://i.cnblogs.com/EditPosts.aspx?postid=7596859
Tomcat Jboss Glassfish 三種常見web容器比較<br>
一、緣由:
新公司平臺是純Java架構,有用到Java Web(JSP)、Java 業務(EJB)、Nginx、、Websphere MQ、Mysql這樣。大家知道java是跑在容器裏的,
這裏的業務要用到EJB故選用了Glassfish容器。
EJB是什麽?EJB是一個服務器端的組件模型,可以部署分布式應用程序。J2EE規範這麽說:Enterprise Java Bean (EJB )組件是運行在服務器端的業務組件;
另外Java Servlet和Java Server Pages(JSP)是運行在服務端的web組件。
那麽常見的web容器(應用服務器)又有什麽區別呢?下面慢慢道來。
二、詳解:
1、Web容器
Web容器是一種服務調用的規範,J2EE運用了大量的容器和組件技術來構建分層的企業應用。在J2EE規範中,相應的有Web Container和EJB Container等。
Web容器給處於其中的應用程序組件(JSP、Servlet)提供環境,JSP、Servlet直接與容器中的環境變量打交道,而不必關註其他系統問題。
Web容器更多的是與HTTP的請求打交道,而EJB容器不是,它更多的是跟數據庫其他服務打交道。
2、Web服務器
Web服務器可以處理HTTP協議,當Web服務器收到一個HTTP請求,就會返回一個HTTP響應。
Web服務器可以針對靜態頁面或者圖片的請求進行跳轉,或者把動態響應委托給其他一些程序,如CGI、JSP、Servlet、ASP、JavaScript或者其他服務端技術。
Web服務器僅僅提供一個可執行服務器端環境和返回響應的環境,不涉及其他技術。
1)Apache
是簡單的HTTP服務器,速度快,在大型網站中,常與應用服務器配合部署,僅支持靜態頁面。
2)Nginx
是著名的HTTP服務器,速度快,支持負載均衡。
3、應用程序服務器(Web容器)
作為應用服務器,要求可以通過各種協議(包括HTTP協議)把商業邏輯暴露給客戶端應用程序。應用程序使用商業邏輯就像你調用對象的一個方法或過程一樣。
1)Tomcat
Tomcat僅是個HTTP服務器,是Apache鼎力支持的Java Web服務器,是Servlet/JSP API的執行器,也就是所謂的Servlet容器,不支持EJB、JMS。
相對於JBOSS來說較為輕量級,實現的功能也較少,不能完整的支持最新的JavaEE標準,適用於較為簡單的Web應用。
2)JBOSS
JBOSS是開源Java EE應用服務器,它不但是Servlet容器,而且是EJB容器,它提供了更多開箱即用的功能特性,也更重,它完整的實現了J2EE 6。
3)Glassfish
Glassfish是Oracle 開發的官方Java EE容器,,也是同時支持Servlet和EJB,支持最新的特性,有自己的web容器,支持集群,支持熱部署。
三、區別及選型:
1、區別:
Tomcat只是一個HTTP服務器和Java servlet容器。 JBoss和GlassFish是完整的Java EE應用程序服務器,包括EJB容器和該堆棧的所有其他功能。
另一方面,Tomcat具有更輕的內存占用(約60-70 MB),而那些Java EE服務器的權重在幾百兆。 Tomcat對於簡單的Web應用程序或使用諸如Spring
之類的不需要完整Java EE服務器的框架的應用程序非常流行。管理Tomcat服務器可以說是更容易,因為有較少的移動部件。
但是,對於確實需要完整的Java EE堆棧(或至少更多的部分,可以輕松地固定到Tomcat)的應用程序... JBoss和GlassFish是兩個最流行的開源產品
(第三個是Apache Geronimo ,在其上構建IBM WebSphere的免費版本)。 JBoss有一個更大和更深的用戶社區,和一個更成熟的代碼庫。
但是,JBoss在實現當前Java EE規範方面遠遠落後於GlassFish。此外,對於那些喜歡基於GUI的管理系統... GlassFish的管理控制臺是非常光滑,
而大多數管理在JBoss是通過命令行和文本編輯器。 GlassFish直接來自Sun / Oracle,具有所有的優點。 JBoss不受Sun / Oracle的控制,具有所有可以提供的優點。
原版英文:http://stackoverflow.com/questions/3821640/what-is-the-difference-between-tomcat-jboss-and-glassfish
Tomcat is merely an HTTP server and Java servlet container. JBoss and GlassFish are full-blown Java EE application servers, including an EJB container
and all the other features of that stack. On the other hand, Tomcat has a lighter memory footprint (~60-70 MB), while those Java EE servers weigh in at
hundreds of megs. Tomcat is very popular for simple web applications, or applications using frameworks such as Spring that do not require a full Java EE server.
Administration of a Tomcat server is arguably easier, as there are fewer moving parts.
However, for applications that do require a full Java EE stack (or at least more pieces that could easily be bolted-on to Tomcat)... JBoss and GlassFish are
two of the most popular open source offerings (the third one is Apache Geronimo, upon which the free version of IBM WebSphere is built). JBoss has a larger
and deeper user community, and a more mature codebase. However, JBoss lags significantly behind GlassFish in implementing the current Java EE specs.
Also, for those who prefer a GUI-based admin system... GlassFish‘s admin console is extremely slick, whereas most administration in JBoss is done with a
command-line and text editor. GlassFish comes straight from Sun/Oracle, with all the advantages that can offer. JBoss is NOT under the control of Sun/Oracle,
with all the advantages THAT can offer.
2、選型:
主要根據業務需求和應用規模來確定,如果僅僅是簡單web應用,不需要支持EJB或者JMS等特性的,選擇簡單易用的Tomcat即可。
如果需要更多的J2EE個特性,比如EJB建議選擇Glassfish這種全功能的服務器。
關於JBOSS和Glassfish,建議選擇Glassfish,因為官方出品,實現當前Java EE更及時。
Tomcat Jboss Glassfish 三種常見web容器比較