JBoss,Geronimo还是Tomcat

转载地址:http://www.matrix.org.cn/resource/article/2008-01-02/0bfeffb6-b8e3-11dc-ad9e-410871b898d3.html

原文:http://www.javaworld.com/javaworld/jw-12-2007/jw-12-appservers.html


概述

像JBoss、 Tomcat和Apache Geronimo这样的开源Java EE应用服务器轻松地立足于同类商业产品之中,并且真正地在技术革新中处于市场领先地位。但是这些开源Java EE应用服务器并不完全等同。在这篇文章中,我将从特性、部署和性能方面对JBoss 4.2,Geronimo 2和Tomcat 6三种服务器进行了比较。

当涉及到企业级应用开发时,Java企业版(Java EE)应用服务器被视为Web开发的标准。虽然有商业产品可供选择,但研究表明开源已经成为企业IT基础设施中熟悉的一部分。JBoss 4.2,Geronimo 2和Tomcat 6是3 种被广泛使用的开源的Java EE服务器。在它们之中,尽管JBoos和Tomcat都没有和Java EE完全兼容,但它们仍然保有主要的市场。与此同时,具有完全Java EE兼容性的Geronimo正迅速呈现出强劲的势头。如果你想在Java EE的职业市场中取得竞争优势,你就应该熟悉上述3种开放源代码的服务器,并了解它们之间的不同。

在本文中,我会在特性、部署和性能方面比较这三种领先的开源Java应用服务器。并且解释为什么在每种应用服务器有多种多样的不同特性,同时也提供一些对如哪种服务器更适合你的企业架构的调查。我在这里发表的讨论包括来自Red Hat的Chantal Yang和Apache软件基金会的评论。

1. Java企业特性比较

表1提供了JBoss 4.2、Tomcat 6和Geronimo 2在实现Java EE功能特性方面的快速比较。请注意,特性被标记为部分表示没有完全被服务器支持,你需要安装额外的软件包。如果被标记为可选,则你必须安装第三方软件包才能使用。这三种服务器都已经在Linux、Solaris、微软Windows和Mac OS X上测试过,JBoss已经在HP-UX和AIX上的测试,而Tomcat也在AIX上也测试过。在下面的表格中,你可以找到更多关于它们各自特性的信息以及为什么这些特性如此重要。

表1. Java EE的特性比较


如果你的Java应用需求尤为广泛或者你希望保持全部的Java EE 5兼容性的话,那么Geronimo 2将是明智的选择。虽然JBoss 4.2没有完全兼容Sun的Java EE 5标准,但是JBoss 4.2小组负责了一些尖端技术,而这些技术将被所有的服务器使用并且将被添加到标准的Java EE 5中。Tomcat 6本身是一个轻量级的解决方案,它不包含所有的Java EE 5 特性以及在JBoss和Geronimo中提供的额外软件包,但它不需要太多的内存,甚至在小型服务器上也能运行得很快。

现在,让我们看看为什么这些特性如此重要。

1.1. Java EE 5兼容性

如果你的企业级Java应用必须完全兼容Sun的Java EE 5服务器特性的话,那么Java EE兼容性就是一个重要的问题。Geronimo是三种服务器中唯一完全兼容Java EE 5的。JBoss 4.2支持大部分的Java EE 5特性,而且Red Hat马上就要公布的JBoss 5将对Java EE 5完全兼容。Tomcat是一个JSP/Servlet容器,它只支持基本的Java应用服务器特性。

1.2. EJB 3(企业JavaBeans技术)能力

企业JavaBeans(EJB)是一个为Java EE服务器应用开发服务的Java组件架构。它允许将功能封装到可重用组件中。早期版本的EJB被认为是难以开发的,即使其意图是给开发带来好处。而新的 EJB 3就是为了解决较早版本中存在的困难,并且提供了一些新的功能。JBoss 4.2和Geronimo都支持EJB 3。Tomcat本身不提供EJB 3的兼容性,但是你可以将Apache的OpenEJB项目可以嵌入到Tomcat中使其支持EJB 3。根据Apache基金会的Jeff Genender所述,Tomcat也可以在JBoss的嵌入式版本中运行。

1.3. JSP 2.1和Servlet 2.5能力

JSP/servlet特性是任何Java服务器中最基本的能力。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)是一个Java EE的应用开发架构,它使得开发基于Web的用户界面更加容易。JSF不是一个需求驱动的MVC(模型视图-控制器)的体系结构,而是使用了基于组件的方法。JBoss 4.2和Geronimo 2都支持最新的JSF 1.2版本。JSF 1.2也可以在Tomcat 6上运行,但是发现了一些问题。

1.5. 定制化插件支持

插件支持是一种可以将新功能或特性引入到服务器中的架构。JBoss称它的插件开发特性为MBeans(被管理的Beans)。Geronimo也有被称为 GBeans的相似功能。这些定制的Beans提供了一套开发和管理定制资源的接口,而这些接口也可以作为插件组件被重用。

根据Jeff Genender所言,Geronimo使插件机制更进了一步:

使用Geronimo,你可以从许多组件中挑选一部分来建立符合需要的应用服务器栈。例如,如果想安装Liferay门户、或者Apache目录服务,你可以在管理控制台中添加URL并通过网络安装插件。插件管理系统可以检索出所有必须的依赖并且安装它们。

Geronimo也可以定制组件,Jeff总结如下:

它具有使应用程序如你所愿的变成轻量级或者重量级的能力。你可以充分利用包括所有组件的Java EE 5栈,或者通过将Geronimo作为Web容器来使用少量的G,或者使用微型的G——它仅仅是Geronimo内核和一个完美的SOA和ESB解决方案的基础。你可以添加和删除组件,来只提供自己想用的那部分。如果不需要EJB的话,你可以简单从控制台中删除组件。Red Hat的Chantal Yang表示:JBoss 4提供了“从微内核”组建应用服务器的好处。就像Yang所说,这使得JBoss能够以插件方式提供多种的组件来建立一个定制的应用服务器。

Yang还表示,JBoss 5和它的微容器将极大地提高MBeas的插件支持能力,还没有别的应用服务器在其核心具有这样一个改进的基于POJO的微容器。

1.6. 业务规则引擎支持

几乎每一种应用都是建立在一系列业务规则上的,这也称为业务逻辑。业务规则引擎可以使业务逻辑规划更容易管理。在大多数的规划中,基本逻辑就是必须的工作。业务规则引擎可以使你容易实现更加智能的逻辑。JBoss 4.2,Geronimo 2和Tomcat 6都支持Drools,它是一个流行的、标准兼容并且强大的业务规则引擎。虽然Geronimo是一个完全Java EE 5认证的服务器,并可以运行Drools,但是JBoss在编写本文时已经提供了三年的Drools支持,这使得JBoss的Drools是一个更加强大的业务规则解决方案。JBoss公司最近已将Drools命名为JBoss Rules。此Drools项目本身开始于2001年。

1.7. Hibernate 3.x支持

Hibernate为Java 语言提供对象关系映射(ORM)服务。其易于使用的框架允许你将面向对象的模型映射到传统的关系数据库中,这对于Java开发是一个有力的促进。简而言之,Hibernate管理持久化,让你能够将POJO存储到几乎任何类型的SQL数据库中。并且在进行操作时,对你的程序来说那些对SQL数据的访问是透明的,这使得应用数据和对象管理更加容易。

Hibernate是一个开放源码包,最初是由JBoss的Gavin King领导的小组所开发。现在运行在许多Java EE服务器上,并且也能与J2SE一起工作。JBoss 4.2,Geronimo 2和Tomcat 6都支持Hibernate 3。

1.8. JBoss Seam支持

JBoss Seam是一个强大的应用框架,它整合了许多Java和Web技术,包括Ajax(asynchronous JavaScript and XML)、JSF、EJB 3、Java Protlets和BMP(business-process management)。

Seam是JBoss的一个项目,所以JBoss自然支持它,同样Geronimo也支持。根据Seam的厂商所言,Seam应用可以运行在使用了JBoss可嵌入EJB 3容器的Tomcat上。

1.9. 集群支持

集群是一个技术术语,它是多个并行运行的服务器,这些服务器提供相同服务、以求获得高可用性:因为通过服务器集群可以支持更多的客户,如果集群中的某个服务器崩溃,其它的服务器可以继续为客户提供服务。在Java EE服务器案例中,即使在集群中的一台服务器崩溃,Java应用仍然可以使用。集群为企业级Java应用提供了可扩展性、提高了性能,并消除了单点故障。

JBoss 4.2,Geronimo 2和Tomcat 6都以某种方式支持集群。据Chantal Yang称,JBoss使用“通过伙伴复制和细粒复制以高性能和高可靠的集群层”。Geronimo最近发布了一个针对纠正Geronimo 2集群问题的补丁,所以在这点看来,Geronimo可能还要做一些测试。如果你对Geronimo的集群感兴趣,可以咨询Apache软件基金会。

1.10. Eclipse IDE支持

Eclipse 可以说是Java开发中最受欢迎的IDE,所以将它同你的Java EE服务器集成是培养良好开发的途径。JBoss、Geronimo和Tomcat都支持Eclipse集成。JBoss公司有自己版本的 Eclipse,被称作是Red Hat Developer Studio,在编写本文时还处于测试阶段。

2. 安装与部署

根据测试,安装以上三种Java服务器都是非常容易的。除了将已下载的zip或者tar包解压,你所要做的就是设置JAVA_HOME环境变量指向Java 1.5的安装目录。在运行startup或者是shutdown脚本以启动或停止这些服务器之前,必须设置这个环境变量。注意在Linux/Unix系统中,可能还需要使用chmod命令赋予这些脚本可执行权限。

2.1. 部署

当谈到通用配置和部署时,Geronimo 2是非常光彩夺目的。我发现通过它的Web控制台(见下面的图1)来配置和部署Java应用是一件轻而易举的事。正如Jeff Genender的解释:

Geronimo 控制台包含许多不同的向导以帮助使得应用服务器的配置尽可能简单。Geronimo包含的向导让你可以测试数据库连接池,安全领域等。你可以通过一个易于使用的向导来取代过去编辑XML配置或停止和重新启动服务器的工作,数据库连接池向导甚至可以为你从网络上下载大部分的驱动,以使你无需去找适合数据库的驱动。

Geronimo控制台也可以配置大多数内嵌在Tomcat 6容器中的特性,甚至不必接触到一个XML配置文件。

图 1. Geronimo Web 控制台(点击可放大图像)


JBoss 4.2也有一个外观漂亮的管理控制台(见图2),但它并不提供和类似于Geronimo的特性。它主要是提供JBoss状况和监控信息,但缺乏部署功能。要部署一个应用程序,你可以简单的拷贝它到default/deploy目录中,然后它会被自动迅速的部署。当然,你可以在jboss- service.xml配置文件中指定自定义部署目录。

图 2. JBoss Web控制台(点击可放大图像)


Tomcat 6快速轻巧,正真形成一个轻量级的应用服务器。通过提供一个漂亮的Web控制台,它提供你所需要的基础功能(见图3)。你可以从基于Web的Tomcat 管理器中启动/停止和部署/卸载WAR应用。同时它还提供大部分有用的状态和监控信息。它也为Web控制台提供了一种良好的基础认证制度:你只需在 Tomcat服务器目录中的一个XML文件中简单的指定用户/密码。

图 3. Tomcat Web控制台(点击可放大图像)


3. 性能基准

随着可靠性的提高,性能或许是应用服务器中最重要的一个特性。为了服务器的基本测试,我使用JSP页面和编译好的Servlet做了简单的测试,看看应用服务器能处理多少用户应用会话、连接用户的速度有多快。真实世界中的Java应用非常广泛,而我对JSP和Servlet的测试却非常少量,因为我只要求测试这些服务器的基本可扩展性、可靠性和速度。

通过使用双核64位CPU和4GB内存的服务器,我获得了三种服务器在运行于多达120万并发请求下的数据。这并不意味着同步连接,而是意味保持独一无二的、并发的、通过浏览器客户端连接的用户会话。如果我有更多的内存,我肯定可以获得超过120万的会话。

图4和图5显示了基准测试结果。

图 4. 启动大量的JSP会话


图 5. 一个检查会话的Servlet的大量命中


这里,用于搜集这些基准数据的代码只有几百行。为了获得准确数据,我为每种服务器都使用了同样的配置。在真实世界的Java EE应用中,每一个会话都保持比这个测试更多的数据,因此你可能得不到我所得到的如此海量的数字,除非你在一台有八个处理器和足够多的内存的服务器上运行。

JBoss 4.2和Geronimo表现得非常不同,主要是因为Geronimo版本更加新、并且使用了最新的内核。Tomcat 6是最好的,这是因为它是一个专门为JSP/Servlet服务的轻量级的服务器,而这些正是我测试的基准。Tomcat只需要3秒的启动时间,而 JBoss和Geronimo则需要大约20秒。

如果这些服务器使用完所有的内存,它们都将濒临崩溃。在JBoss 4.2中我曾经有一次Java空指针异常就试图关闭它的经历,即使它还没有使用完所有的内存。当用完所有内存时,Geronimo和Tomcat都似乎非常糟糕,此时关闭它们是非常困难的。

4. 结论

我在商业Java应用服务器(如Sun的Java应用服务器和BEA的WebLogic)和开源替代品中都已经安装和部署了Java应用。在这篇文章中,根据我的经验,与开源服务器相比,商业应用服务器有更多的Bug,并且它们更难安装。部署也是一个问题,至少在Sun的Java应用服务器的最新版是这样。

底线:JBoss,Geronimo和Tomcat是可靠、快速的,而且一定能够处理好在大型的企业级应用中的交易。此外,许多高需求的Java服务器技术特性来源于开源世界中,而不是商业世界中。

在这篇文章中,我在特性、部署和性能方面比较了三种流行的开源JEE应用服务器。这些特性的比较可以帮助你决定选择最适合应用环境需求的开源应用服务器,而性能基准测试能帮助你的考虑更加全面。
Apache Geronimo 中部署 Web 服務 在 Apache Geronimo 中部署 Web 服務.pdf 立即下载

相关推荐

Geronimo的Eclipse插件

用该插件,可以使Eclipse直接使用Geronimo的J2EE服务期和Tomcat服务器(Geronimo服务器版本需要在Apache网站上下载)

JBoss、Geronimo及Tomcat比较分析

JBoss、Geronimo及Tomcat比较分析 中国IT实验室收集整理 佚名 2008-2-22 保存本文 推荐给好友 收藏本页     在开源的Java应用服务器领域,像JBoss、Tomcat及Apache的Geronimo,他们不仅仅是商业领域的领跑者,同时是技术领域的先行者。当然,所有的Java EE应用服务器的实现不尽相同,但其很多方面具有一定程度的可比性。本文对JBoss4.2、G...

mlxia的专栏 284

lvds接口_LVDS,接口,时序讲解,非常好的文章

欢迎FPGA工程师加入官方微信技术群点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群1.1.1 LVDS接口分类1.1.1.1 单路6bit LVDS这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口。此,也称18位或18bit LVDS接口。1.1.1.2 双路6bit LVDS这种接口电...

weixin_39639286的博客 1906

Java常用的应用服务器有哪些?

5. Oracle WebLogic:是一个商业级Java应用服务器,支持Java EE标准,包括Servlet、JSP、EJB、JMS、JPA等技术。4. IBM WebSphere:是一个商业级Java应用服务器,支持Java EE标准,包括Servlet、JSP、EJB、JMS、JPA等技术。3. GlassFish:是一个开源的Java EE应用服务器,支持Java EE 8标准,包括Servlet、JSP、EJB、JPA等技术。

m0_73875988的博客 2439

YOLOv8缺陷检测可视化界面实战:PyQt5布局设计与代码实现

本文详细介绍了如何利用PyQt5为YOLOv8缺陷检测模型构建一个专业、易用的可视化界面。通过实战讲解PyQt5的布局管理器设计、信号槽机制与YOLOv8核心的集成,帮助开发者快速将AI模型部署为直观的桌面应用,提升工业质检等场景的落地效率。

redis7keeper的博客 758

DELL服务器BIOS下配置RAID阵列

dell服务器配置raid阵列

weixin_58250887的博客 1万+

javax.management.InstanceAlreadyExistsException错误的解决方法

在搭建springcloud项目时,多个模块的项目同事启动,但是又两个模块的项目启动报错:javax.management.InstanceAlreadyExistsException; 百度了很多解决办法,说什么domain不可以一样,要在配置文件里添加 spring.jmx.domain的配置,试了也是不可以; 由于是在启动的时候报错,于是查看两个启动报错的启动类,发现启动类的入口方法SpringApplication.run方法多次执行了,导致报错。 解决方法: springboot启动类中只

xumengdi_xmd的博客 6242

DisplayPort信号通道深度解析:从物理层到协议栈

DisplayPort(DP)是一种面向高速串行通信的数字显示接口标准,其核心在于嵌入式时钟、自适应均衡与链路训练三位一体的物理层架构。不同于HDMI依赖独立时钟的TMDS方案,DP通过差分主链路(Main Link)承载编码数据流,以8b/10b或128b/132b编码实现高带宽与强鲁棒性。该技术价值体现在多速率自适应、误码恢复能力及对PCB布线与阻抗控制的严苛要求,广泛应用于8K显示、工业视觉、GPU直连等高性能场景。本文聚焦DP信号通道的管脚级实现、三层协议解耦(物理层/数据链路层/事务层)及链路训练

weixin_34214500的博客 259

JBoss,Geronimo还是Tomcat?

JBoss,Geronimo还是Tomcat? ——三种开源Java应用服务器的比较 作者:Jonathan Campbell 译者:李功健 原文:http://www.javaworld.com/javaworld/jw-12-2007/jw-12-appservers.html 目录 1. Java企业特性比较     1.1. Java EE 5兼容性     1.2. EJB...

Android-Java 223

爱快路由(ikuai)多WAN口配置实战:提升网络带宽与稳定性

本文详细解析了爱快路由(ikuai)多WAN口配置的实战技巧,包括双线智能分流、毫秒级故障切换和带宽叠加利用等核心功能。通过七种配置方案和智能QoS策略,帮助企业提升网络带宽与稳定性,实现99.9%以上的高可用性。

weixin_30566063的博客 707

DPO(Direct Preference Optimization)直接偏好优化

本文介绍了DPO(直接偏好优化)方法,该方法通过简化传统的RLHF(基于人类反馈的强化学习)流程,直接利用人类偏好数据进行模型优化。DPO的核心思想是跳过奖励模型训练和强化学习交互步骤,通过数学推导将优化目标转化为仅与策略概率分布相关的形式。推导表明最优策略与奖励模型之间存在显式关系,从而可以构建直接优化策略的损失函数。与RLHF相比,DPO简化了训练流程,提高了工程实现稳定性,同时保持了同等效果。

TeenLucifer的博客 1956

从tomcat迁移项目到geronimo

 我有一个web项目,用的strtus框架。正常情况下,打包成war后,在websphere正式版的控制台里发布,没有问题,我想把他移植到到wasce中,相同的war文件,或者相同的目录结构,却失败了。查了些资料后,发现根本原因是部署描述符文件错。前面的文章讲到过,geronimo项目需要部署描述符文件来描述各模块的关系,这是个很重要的文件。我的项目是个web项目,文件名叫geroni

想飞的马 3103

优化YOLOv8检测精度:Damo-YOLO的RepGFPN特征融合技术解析【YOLOv8】

YOLOv8在结构上依旧延续了自YOLOv4以来的CSPNet(Cross Stage Partial Network)和FPN(Feature Pyramid Network)的设计,结合了PANet(Path Aggregation Network)来增强特征的多尺度表达。然而,随着目标检测任务的复杂性增加,如何更有效地融合不同层级的特征成为提升检测性能的关键。Damo-YOLO中的RepGFPN引入了重参数化的思想,通过在训练和推理阶段对特征融合模块进行结构优化,显著提升了检测效果。

博客 1583

JBoss、Tomcat及Apache的 Geronimo 的比较

<br /> <br /><br />文章分类:Java编程 一直以来,服务器总是了解不深,今天看了这篇,觉得不错,就把他摘下来了。让大家也学习学习。 <br /> 在开源的Java应用服务器领域,像JBoss、Tomcat及Apache的Geronimo,他们不仅仅是商业领域的领跑者,同时是技术领域 的先行者。当然,所有的Java EE应用服务器的实现不尽相同,但其很多方面具有一定程度的可比性。本文对JBoss4.2、Geronimo 2及Tomcat

stz344184987的专栏 735

【DexGraspNet与多指手抓取算法详解】第四章 抓取检测网络架构设计

图 $G=(V, E)$ 包含两类节点:指尖节点 $V_{tip} = \{v_{tip}^i\}_{i=1}^{N_{finger}}$ 与物体表面节点 $V_{obj} = \{v_{obj}^j\}_{j=1}^{N_{surf}}$。节点特征包含位置 $x \in \mathbb{R}^3$ 、法向 $n \in \mathbb{R}^3$ 及视觉特征 $f \in \mathbb{R}^d$。

VectorShift的博客 441

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JBoss,Geronimo还是Tomcat?——三种开源Java应用服务器的比较

JBoss,Geronimo还是Tomcat?——三种开源Java应用服务器的比较作者:Jonathan Campbell译者:李功健原文:http://www.javaworld.com/javaworld/jw-12-2007/jw-12-appservers.html目录 1. Java企业特性比较1.1. Java EE 5兼容性1.2. EJB 3(企业Jav...

anjichan4261的博客 229

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JBoss、Tomcat及Apache的Geronimo 的比较

在开源的Java应用服务器领域,像JBoss、Tomcat及Apache的Geronimo,他们不仅仅是商业领域的领跑者,同时是技术领域的先行者。当然,所有的Java EE应用服务器的实现不尽相同,但其很多方面具有一定程度的可比性。本文对JBoss4.2、Geronimo 2及Tomcat 6三种开源的Java EE应用服务器,就他们的特性、部署及性能等方面进行一一比较。 一、     

每天积累一点,一年后你会发现,自己变化很大 1124

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: WebWork简介
下一篇: JavaFX简介
rancii
博客等级 码龄19年 15粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值