一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

JBoss,Geronimo還是Tomcat?——三種開源Java應(yīng)用服務(wù)器的比較

 niefeng2011 2013-12-31

來源:http://blog.csdn.net/vanessa219/article/details/2975998
原文:http://www./javaworld/jw-12-2007/jw-12-appservers.html

目錄

1. Java企業(yè)特性比較

    1.1. Java EE 5兼容性
    1.2. EJB 3(企業(yè)JavaBeans技術(shù))能力
    1.3. JSP 2.1和Servlet 2.5能力
    1.4. JSF 1.2支持
    1.5. 定制化插件支持
    1.6. 業(yè)務(wù)規(guī)則引擎支持
    1.7. Hibernate 3.x支持
    1.8. JBoss Seam支持
    1.9. 集群支持
    1.10. Eclipse IDE支持

2. 安裝與部署

    2.1. 部署

3. 性能基準(zhǔn)
4. 結(jié)論
5. 作者自傳
6. 關(guān)于譯者


概述

像JBoss、 Tomcat和Apache Geronimo這樣的開源Java EE應(yīng)用服務(wù)器輕松地立足于同類商業(yè)產(chǎn)品之中,并且真正地在技術(shù)革新中處于市場(chǎng)領(lǐng)先地位。但是這些開源Java EE應(yīng)用服務(wù)器并不完全等同。在這篇文章中,我將從特性、部署和性能方面對(duì)JBoss 4.2Geronimo 2Tomcat 6三種服務(wù)器進(jìn)行了比較。

當(dāng)涉及到企業(yè)級(jí)應(yīng)用開發(fā)時(shí),Java企業(yè)版(Java EE)應(yīng)用服務(wù)器被視為Web開發(fā)的標(biāo)準(zhǔn)。雖然有商業(yè)產(chǎn)品可供選擇,但研究表明開源已經(jīng)成為企業(yè)IT基礎(chǔ)設(shè)施中 熟悉的一部分。JBoss 4.2,Geronimo 2和Tomcat 6是3 種被廣泛使用的開源的Java EE服務(wù)器。在它們之中,盡管JBoos和Tomcat都沒有和Java EE完全兼容,但它們?nèi)匀槐S兄饕氖袌?chǎng)。與此同時(shí),具有完全Java EE兼容性的Geronimo正迅速呈現(xiàn)出強(qiáng)勁的勢(shì)頭。如果你想在Java EE的職業(yè)市場(chǎng)中取得競(jìng)爭(zhēng)優(yōu)勢(shì),你就應(yīng)該熟悉上述3種開放源代碼的服務(wù)器,并了解它們之間的不同。

在本文中,我會(huì)在特性、部署和性能方面 比較這三種領(lǐng)先的開源Java應(yīng)用服務(wù)器。并且解釋為什么在每種應(yīng)用服務(wù)器有多種多樣的不同特性,同時(shí)也提供一些對(duì)如哪種服務(wù)器更適合你的企業(yè)架構(gòu)的調(diào) 查。我在這里發(fā)表的討論包括來自Red Hat的Chantal Yang和Apache軟件基金會(huì)的評(píng)論。

1. Java企業(yè)特性比較

表 1 提供了JBoss 4.2、Tomcat 6和Geronimo 2在實(shí)現(xiàn)Java EE功能特性方面的快速比較。請(qǐng)注意,特性被標(biāo)記為部分表示沒有完全被服務(wù)器支持,你需要安裝額外的軟件包。如果被標(biāo)記為可選,則你必須安裝第三方軟件包 才能使用。這三種服務(wù)器都已經(jīng)在Linux、Solaris、微軟Windows和Mac OS X上測(cè)試過,JBoss已經(jīng)在HP-UX和AIX上的測(cè)試,而Tomcat也在AIX上也測(cè)試過。在下面的表格中,你可以找到更多關(guān)于它們各自特性的信息 以及為什么這些特性如此重要。

表1. Java EE的特性比較
image

如 果你的Java應(yīng)用需求尤為廣泛或者你希望保持全部的Java EE 5兼容性的話,那么Geronimo 2將是明智的選擇。雖然JBoss 4.2沒有完全兼容Sun的Java EE 5標(biāo)準(zhǔn),但是JBoss 4.2小組負(fù)責(zé)了一些尖端技術(shù),而這些技術(shù)將被所有的服務(wù)器使用并且將被添加到標(biāo)準(zhǔn)的Java EE 5中。Tomcat 6本身是一個(gè)輕量級(jí)的解決方案,它不包含所有的Java EE 5 特性以及在JBoss和Geronimo中提供的額外軟件包,但它不需要太多的內(nèi)存,甚至在小型服務(wù)器上也能運(yùn)行得很快。

現(xiàn)在,讓我們看看為什么這些特性如此重要。

1.1. Java EE 5兼容性

如 果你的企業(yè)級(jí)Java應(yīng)用必須完全兼容Sun的Java EE 5服務(wù)器特性的話,那么Java EE兼容性就是一個(gè)重要的問題。Geronimo是三種服務(wù)器中唯一完全兼容Java EE 5的。JBoss 4.2支持大部分的Java EE 5特性,而且Red Hat馬上就要公布的JBoss 5將對(duì)Java EE 5完全兼容。Tomcat是一個(gè)JSP/Servlet容器,它只支持基本的Java應(yīng)用服務(wù)器特性。

1.2. EJB 3(企業(yè)JavaBeans技術(shù))能力

企 業(yè)JavaBeans(EJB)是一個(gè)為Java EE服務(wù)器應(yīng)用開發(fā)服務(wù)的Java組件架構(gòu)。它允許將功能封裝到可重用組件中。早期版本的EJB被認(rèn)為是難以開發(fā)的,即使其意圖是給開發(fā)帶來好處。而新的 EJB 3就是為了解決較早版本中存在的困難,并且提供了一些新的功能。JBoss 4.2和Geronimo都支持EJB 3。Tomcat本身不提供EJB 3的兼容性,但是你可以將Apache的OpenEJB項(xiàng)目可以嵌入到Tomcat中使其支持EJB 3。根據(jù)Apache基金會(huì)的Jeff Genender所述,Tomcat也可以在JBoss的嵌入式版本中運(yùn)行。

1.3. JSP 2.1和Servlet 2.5能力

JSP/servlet特性是任何Java服務(wù)器中最基本的能力。JSP 2.1和servlet 2.5是新版Java EE 5中提供的能力。JBoss 4.2、Geronimo 2和Tomcat 6都支持這些新的JSP/servlet版本。

1.4. JSF 1.2支持

JSF (Java Server Faces)是一個(gè)Java EE的應(yīng)用開發(fā)架構(gòu),它使得開發(fā)基于Web的用戶界面更加容易。JSF不是一個(gè)需求驅(qū)動(dòng)的MVC(模型視圖-控制器)的體系結(jié)構(gòu),而是使用了基于組件的方 法。JBoss 4.2和Geronimo 2都支持最新的JSF 1.2版本。JSF 1.2也可以在Tomcat 6上運(yùn)行,但是發(fā)現(xiàn)了一些問題。

1.5. 定制化插件支持

插 件支持是一種可以將新功能或特性引入到服務(wù)器中的架構(gòu)。JBoss稱它的插件開發(fā)特性為MBeans(被管理的Beans)。Geronimo也有被稱為 GBeans的相似功能。這些定制的Beans提供了一套開發(fā)和管理定制資源的接口,而這些接口也可以作為插件組件被重用。

根據(jù)Jeff Genender所言,Geronimo使插件機(jī)制更進(jìn)了一步:

使用Geronimo,你可以從許多組件中挑選一部分來建立符合需要的應(yīng)用服務(wù)器棧。例如,如果想安裝Liferay門戶、或者Apache目錄服務(wù),你可以在管理控制臺(tái)中添加URL并通過網(wǎng)絡(luò)安裝插件。插件管理系統(tǒng)可以檢索出所有必須的依賴并且安裝它們。

Geronimo也可以定制組件,Jeff總結(jié)如下:

它 具有使應(yīng)用程序如你所愿的變成輕量級(jí)或者重量級(jí)的能力。你可以充分利用包括所有組件的Java EE 5棧,或者通過將Geronimo作為Web容器來使用少量的G,或者使用微型的G——它僅僅是Geronimo內(nèi)核和一個(gè)完美的SOA和ESB解決方案 的基礎(chǔ)。你可以添加和刪除組件,來只提供自己想用的那部分。如果不需要EJB的話,你可以簡(jiǎn)單從控制臺(tái)中刪除組件。Red Hat的Chantal Yang表示:JBoss 4提供了“從微內(nèi)核”組建應(yīng)用服務(wù)器的好處。就像Yang所說,這使得JBoss能夠以插件方式提供多種的組件來建立一個(gè)定制的應(yīng)用服務(wù)器。

Yang還表示,JBoss 5和它的微容器將極大地提高M(jìn)Beas的插件支持能力,還沒有別的應(yīng)用服務(wù)器在其核心具有這樣一個(gè)改進(jìn)的基于POJO的微容器。

1.6. 業(yè)務(wù)規(guī)則引擎支持

幾乎每一種應(yīng)用都是建立在一系列業(yè)務(wù)規(guī)則上的,這也稱為業(yè)務(wù)邏輯。業(yè)務(wù)規(guī)則引擎可以使業(yè)務(wù)邏輯規(guī)劃更容易管理。在大多數(shù)的規(guī)劃中,基本邏輯就是必須的工作。業(yè)務(wù)規(guī)則引擎可以使你容易實(shí)現(xiàn)更加智能的邏輯。JBoss 4.2,Geronimo 2和Tomcat 6都支持Drools, 它是一個(gè)流行的、標(biāo)準(zhǔn)兼容并且強(qiáng)大的業(yè)務(wù)規(guī)則引擎。雖然Geronimo是一個(gè)完全Java EE 5認(rèn)證的服務(wù)器,并可以運(yùn)行Drools,但是JBoss在編寫本文時(shí)已經(jīng)提供了三年的Drools支持,這使得JBoss的Drools是一個(gè)更加強(qiáng)大 的業(yè)務(wù)規(guī)則解決方案。JBoss公司最近已將Drools命名為JBoss Rules。此Drools項(xiàng)目本身開始于2001年。

1.7. Hibernate 3.x支持

Hibernate為Java 語言提供對(duì)象關(guān)系映射(ORM)服務(wù)。其易于使用的框架允許你將面向?qū)ο蟮哪P陀成涞絺鹘y(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,這對(duì)于Java開發(fā)是一個(gè)有力的促進(jìn)。簡(jiǎn)而言 之,Hibernate管理持久化,讓你能夠?qū)OJO存儲(chǔ)到幾乎任何類型的SQL數(shù)據(jù)庫(kù)中。并且在進(jìn)行操作時(shí),對(duì)你的程序來說那些對(duì)SQL數(shù)據(jù)的訪問是 透明的,這使得應(yīng)用數(shù)據(jù)和對(duì)象管理更加容易。

Hibernate是一個(gè)開放源碼包,最初是由JBoss的Gavin King領(lǐng)導(dǎo)的小組所開發(fā)?,F(xiàn)在運(yùn)行在許多Java EE服務(wù)器上,并且也能與J2SE一起工作。JBoss 4.2,Geronimo 2和Tomcat 6都支持Hibernate 3。

1.8. JBoss Seam支持

JBoss Seam是一個(gè)強(qiáng)大的應(yīng)用框架,它整合了許多Java和Web技術(shù),包括Ajax(asynchronous JavaScript and XML)、JSF、EJB 3、Java Protlets和BMP(business-process management)。

Seam是JBoss的一個(gè)項(xiàng)目,所以JBoss自然支持它,同樣Geronimo也支持。根據(jù)Seam的廠商所言,Seam應(yīng)用可以運(yùn)行在使用了JBoss可嵌入EJB 3容器的Tomcat上。

1.9. 集群支持

集群是 一個(gè)技術(shù)術(shù)語,它是多個(gè)并行運(yùn)行的服務(wù)器,這些服務(wù)器提供相同服務(wù)、以求獲得高可用性:因?yàn)橥ㄟ^服務(wù)器集群可以支持更多的客戶,如果集群中的某個(gè)服務(wù)器崩 潰,其它的服務(wù)器可以繼續(xù)為客戶提供服務(wù)。在Java EE服務(wù)器案例中,即使在集群中的一臺(tái)服務(wù)器崩潰,Java應(yīng)用仍然可以使用。集群為企業(yè)級(jí)Java應(yīng)用提供了可擴(kuò)展性、提高了性能,并消除了單點(diǎn)故障。

JBoss 4.2,Geronimo 2和Tomcat 6都以某種方式支持集群。據(jù)Chantal Yang稱,JBoss使用“通過伙伴復(fù)制和細(xì)粒復(fù)制以高性能和高可靠的集群層”。Geronimo最近發(fā)布了一個(gè)針對(duì)糾正Geronimo 2集群?jiǎn)栴}的補(bǔ)丁,所以在這點(diǎn)看來,Geronimo可能還要做一些測(cè)試。如果你對(duì)Geronimo的集群感興趣,可以咨詢Apache軟件基金會(huì)。

1.10. Eclipse IDE支持

Eclipse 可以說是Java開發(fā)中最受歡迎的IDE,所以將它同你的Java EE服務(wù)器集成是培養(yǎng)良好開發(fā)的途徑。JBoss、Geronimo和Tomcat都支持Eclipse集成。JBoss公司有自己版本的 Eclipse,被稱作是Red Hat Developer Studio,在編寫本文時(shí)還處于測(cè)試階段。

2. 安裝與部署

根 據(jù)測(cè)試,安裝以上三種Java服務(wù)器都是非常容易的。除了將已下載的zip或者tar包解壓,你所要做的就是設(shè)置JAVA_HOME環(huán)境變量指向Java 1.5的安裝目錄。在運(yùn)行startup或者是shutdown腳本以啟動(dòng)或停止這些服務(wù)器之前,必須設(shè)置這個(gè)環(huán)境變量。注意在Linux/Unix系統(tǒng) 中,可能還需要使用chmod命令賦予這些腳本可執(zhí)行權(quán)限。

2.1. 部署

當(dāng)談到通用配置和部署時(shí),Geronimo 2是非常光彩奪目的。我發(fā)現(xiàn)通過它的Web控制臺(tái)(見下面的圖1)來配置和部署Java應(yīng)用是一件輕而易舉的事。正如Jeff Genender的解釋:

Geronimo 控制臺(tái)包含許多不同的向?qū)б詭椭沟脩?yīng)用服務(wù)器的配置盡可能簡(jiǎn)單。Geronimo包含的向?qū)ё屇憧梢詼y(cè)試數(shù)據(jù)庫(kù)連接池,安全領(lǐng)域等。你可以通過一個(gè)易于 使用的向?qū)砣〈^去編輯XML配置或停止和重新啟動(dòng)服務(wù)器的工作,數(shù)據(jù)庫(kù)連接池向?qū)踔量梢詾槟銖木W(wǎng)絡(luò)上下載大部分的驅(qū)動(dòng),以使你無需去找適合數(shù)據(jù)庫(kù)的 驅(qū)動(dòng)。

Geronimo控制臺(tái)也可以配置大多數(shù)內(nèi)嵌在Tomcat 6容器中的特性,甚至不必接觸到一個(gè)XML配置文件。

圖 1. Geronimo Web 控制臺(tái)(點(diǎn)擊可放大圖像)
image

JBoss 4.2也有一個(gè)外觀漂亮的管理控制臺(tái)(見圖2),但它并不提供和類似于Geronimo的特性。它主要是提供JBoss狀況和監(jiān)控信息,但缺乏部署功能。 要部署一個(gè)應(yīng)用程序,你可以簡(jiǎn)單的拷貝它到default/deploy目錄中,然后它會(huì)被自動(dòng)迅速的部署。當(dāng)然,你可以在jboss- service.xml配置文件中指定自定義部署目錄。

圖 2. JBoss Web控制臺(tái)(點(diǎn)擊可放大圖像)
image

Tomcat 6快速輕巧,正真形成一個(gè)輕量級(jí)的應(yīng)用服務(wù)器。通過提供一個(gè)漂亮的Web控制臺(tái),它提供你所需要的基礎(chǔ)功能(見圖3)。你可以從基于Web的Tomcat 管理器中啟動(dòng)/停止和部署/卸載WAR應(yīng)用。同時(shí)它還提供大部分有用的狀態(tài)和監(jiān)控信息。它也為Web控制臺(tái)提供了一種良好的基礎(chǔ)認(rèn)證制度:你只需在 Tomcat服務(wù)器目錄中的一個(gè)XML文件中簡(jiǎn)單的指定用戶/密碼。

圖 3. Tomcat Web控制臺(tái)(點(diǎn)擊可放大圖像)
image

3. 性能基準(zhǔn)

隨 著可靠性的提高,性能或許是應(yīng)用服務(wù)器中最重要的一個(gè)特性。為了服務(wù)器的基本測(cè)試,我使用JSP頁(yè)面和編譯好的Servlet做了簡(jiǎn)單的測(cè)試,看看應(yīng)用服 務(wù)器能處理多少用戶應(yīng)用會(huì)話、連接用戶的速度有多快。真實(shí)世界中的Java應(yīng)用非常廣泛,而我對(duì)JSP和Servlet的測(cè)試卻非常少量,因?yàn)槲抑灰鬁y(cè) 試這些服務(wù)器的基本可擴(kuò)展性、可靠性和速度。

通過使用雙核64位CPU和4GB內(nèi)存的服務(wù)器,我獲得了三種服務(wù)器在運(yùn)行于多達(dá)120萬并發(fā)請(qǐng)求下的數(shù)據(jù)。這并不意味著同步連接,而是意味保持獨(dú)一無二的、并發(fā)的、通過瀏覽器客戶端連接的用戶會(huì)話。如果我有更多的內(nèi)存,我肯定可以獲得超過120萬的會(huì)話。

圖4和圖5顯示了基準(zhǔn)測(cè)試結(jié)果。

圖 4. 啟動(dòng)大量的JSP會(huì)話
image

圖 5. 一個(gè)檢查會(huì)話的Servlet的大量命中
image

這 里,用于搜集這些基準(zhǔn)數(shù)據(jù)的代碼只有幾百行。為了獲得準(zhǔn)確數(shù)據(jù),我為每種服務(wù)器都使用了同樣的配置。在真實(shí)世界的Java EE應(yīng)用中,每一個(gè)會(huì)話都保持比這個(gè)測(cè)試更多的數(shù)據(jù),因此你可能得不到我所得到的如此海量的數(shù)字,除非你在一臺(tái)有八個(gè)處理器和足夠多的內(nèi)存的服務(wù)器上運(yùn) 行。

JBoss 4.2和Geronimo表現(xiàn)得非常不同,主要是因?yàn)镚eronimo版本更加新、并且使用了最新的內(nèi)核。Tomcat 6是最好的,這是因?yàn)樗且粋€(gè)專門為JSP/Servlet服務(wù)的輕量級(jí)的服務(wù)器,而這些正是我測(cè)試的基準(zhǔn)。Tomcat只需要3秒的啟動(dòng)時(shí)間,而 JBoss和Geronimo則需要大約20秒。

如果這些服務(wù)器使用完所有的內(nèi)存,它們都將瀕臨崩潰。在JBoss 4.2中我曾經(jīng)有一次Java空指針異常就試圖關(guān)閉它的經(jīng)歷,即使它還沒有使用完所有的內(nèi)存。當(dāng)用完所有內(nèi)存時(shí),Geronimo和Tomcat都似乎非常糟糕,此時(shí)關(guān)閉它們是非常困難的。

4. 結(jié)論

我 在商業(yè)Java應(yīng)用服務(wù)器(如Sun的Java應(yīng)用服務(wù)器和BEA的WebLogic)和開源替代品中都已經(jīng)安裝和部署了Java應(yīng)用。在這篇文章中,根 據(jù)我的經(jīng)驗(yàn),與開源服務(wù)器相比,商業(yè)應(yīng)用服務(wù)器有更多的Bug,并且它們更難安裝。部署也是一個(gè)問題,至少在Sun的Java應(yīng)用服務(wù)器的最新版是這樣。

底線:JBoss,Geronimo和Tomcat是可靠、快速的,而且一定能夠處理好在大型的企業(yè)級(jí)應(yīng)用中的交易。此外,許多高需求的Java服務(wù)器技術(shù)特性來源于開源世界中,而不是商業(yè)世界中。

在這篇文章中,我在特性、部署和性能方面比較了三種流行的開源JEE應(yīng)用服務(wù)器。這些特性的比較可以幫助你決定選擇最適合應(yīng)用環(huán)境需求的開源應(yīng)用服務(wù)器,而性能基準(zhǔn)測(cè)試能幫助你的考慮更加全面。

5. 作者自傳


Jonathan Campbell
是 一個(gè)項(xiàng)目主管,擁有至少15個(gè)IT認(rèn)證。自20世紀(jì)80年代末以來,他一直在各種風(fēng)格的UNIX系統(tǒng)上和自20世紀(jì)90年代以來在Windows系統(tǒng)上開 發(fā)軟件。在網(wǎng)絡(luò)工程和UNIX,Linux和WIndows平臺(tái)的集成方面也有專門的知識(shí)。目前,他正在為各種企業(yè)和美國(guó)政府工作。

6. 關(guān)于譯者

李功健,Matrix編輯。畢業(yè)于大連理工大學(xué)機(jī)械電子工程專業(yè)。熟悉Java和C++軟件開發(fā),熟悉Windows、Redhat Linux操作系統(tǒng) 和SQL Server、Oracle等數(shù)據(jù)庫(kù)管理系統(tǒng)。也從事過一些實(shí)際項(xiàng)目的開發(fā)工作。目前正在攻讀研究生。 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    亚洲男人天堂成人在线视频| 搡老妇女老熟女一区二区| 97人妻精品一区二区三区免| 久久99这里只精品热在线| 国产乱淫av一区二区三区| 中日韩免费一区二区三区| 欧美不卡一区二区在线视频| 亚洲国产精品av在线观看| 亚洲最新的黄色录像在线| 一二区中文字幕在线观看| 国产精品超碰在线观看| 人妻一区二区三区多毛女| 成人三级视频在线观看不卡 | 日本一区二区三区黄色| 亚洲专区一区中文字幕| 亚洲中文字幕在线视频频道| 成年人免费看国产视频| 国内精品美女福利av在线| 五月天婷亚洲天婷综合网| 日本午夜免费观看视频| 又黄又爽禁片视频在线观看| 青青免费操手机在线视频| 国产亚洲二区精品美女久久| 少妇人妻一级片一区二区三区| 99热在线精品视频观看| 日韩欧美一区二区不卡视频| 免费黄片视频美女一区| 国产精品一区二区视频大全| 国产精品欧美在线观看| 国产福利一区二区三区四区| 欧美性猛交内射老熟妇| 黄片美女在线免费观看| 欧美加勒比一区二区三区| 又色又爽又无遮挡的视频 | 亚洲精品一二三区不卡| 福利专区 久久精品午夜| 国产一级内射麻豆91| 九九热这里有精品20| 日本99精品在线观看| 激情丁香激情五月婷婷| 在线免费国产一区二区三区|