JBoss vs Tomcat再次[关闭]

Posted

技术标签:

【中文标题】JBoss vs Tomcat再次[关闭]【英文标题】:JBoss vs Tomcat again [closed] 【发布时间】:2011-06-07 18:30:22 【问题描述】:

这似乎是一个古老的问题(它是:))Tomcat 和 JBoss 之间哪个服务器更好,但我还没有找到足够好的答案来解决我的问题。

我知道 Tomcat 只是一个 servlet 引擎,而 JBoss 提供了更多开箱即用的功能,但我不明白为什么 Tomcat 在某些情况下比 jboss 更好用。 我在某处读到 JBoss 具有可插拔架构,如果需要,您可以从 JBoss 中拔出功能,使其本质上是一个 tomcat servlet 容器。如果是这样的话,那么这样做不是更好,而不是使用 Tomcat,以便为重新插入东西留出空间。

我发现支持 Tomcat 的另一个解释是它是轻量级的,这是否意味着更少的内存需求,或者这是否也允许更快的响应。同样,我需要知道 jboss 不会根据要求加载组件,即如果我只使用 servlet,那么 jboss 不会跳过其余功能并自动变得轻量级。

基本上,我的应用程序没有任何 Java EE 功能,但由于上述原因,支持 Tomcat 的“轻量级”论点听起来不够令人信服。

请帮忙。

编辑:当时我们终于决定使用 tomcat,现在我们已经使用了 6 个多月,而且非常易于使用。事实上,我们发现了一些实际用途,我们可以很容易地在同一台服务器机器上为不同的开发人员运行多个 tomcat 实例,对于 jboss 来说同样的事情可能非常困难。

我发现 tomcat 可以轻松完成我们的工作,因此当您不使用太多 Java EE 功能时,它可能是正确的选择。 PS:请注意,我们仍然在 Tomcat 中使用 Spring 和 Hibernate

【问题讨论】:

呃,JBoss 不和 Tomcat 集成吗? @Navi:不是这样。它包含 Tomcat 代码库的分叉版本,但有很大不同。 一个没有 j2ee 功能的简单 Web 应用程序应该可以轻松部署在任何兼容的 servlet 容器上。鉴于此,您预先使用哪一个并不重要。我将从最简单的部署开始(Tomcat 和 Jetty 过去都很好地为我服务)。 仅供参考,在 2011 年底,Tomcat 获得了 JavaEE 6 认证,被认证为 TomEE 以回答这个古老的问题。 一个有大约 150K 观看次数、125 次赞成票和 0 次反对票的封闭式问题?!!我知道这些是规则,但我不得不说这些规则必须稍微改变一下。 【参考方案1】:

首先是事实,也不是更好。正如您已经提到的,Tomcat 提供了一个支持 Servlet 规范的 servlet 容器(Tomcat 7 支持 Servlet 3.0)。 JBoss AS,一个“完整”的应用程序服务器,在其当前版本中支持 Java EE 6(包括 Servlet 3.0)。

Tomcat 是相当轻量级的,如果您需要 Servlet API 之外的某些 Java EE 功能,您可以通过在应用程序中提供所需的库来轻松增强 Tomcat。例如,如果您需要 JPA 功能,您可以包括 Hibernate 或 OpenEJB,而 JPA几乎开箱即用。

如何决定使用Tomcat还是全栈Java EE应用服务器:

在开始您的项目时,您应该知道它需要什么。如果您在大型企业环境中,JBoss(或任何其他 Java EE 服务器)可能是正确的选择,因为它提供了内置支持,例如:

    用于异步集成的 JMS 消息传递 Web 服务引擎(JAX-WS 和/或 JAX-RS) JMX 和脚本化管理界面等管理功能 高级安全性,例如与第 3 方目录的开箱即用集成 EAR 文件而不是“仅”WAR 文件支持 我不记得所有其他“伟大的”Java EE 功能 :-)

在我看来如果涉及到以 Web 为中心、面向用户的应用程序,Tomcat 非常适合。如果后端集成发挥作用,则应该(至少)考虑 Java EE 应用程序服务器。最后但同样重要的是,将针对 Tomcat 开发的 WAR 迁移到 JBoss 应该是 1 天的练习。

其次,您还应该考虑环境中的使用情况。如果您的组织已经运行了 1,000 个 JBoss 实例,那么无论您的具体要求如何(考虑运营成本或技能提升等方面),您都可能会一直使用它。当然,反之亦然。

我的 2 美分

【讨论】:

【参考方案2】:

看看TOMEE

它具有构建完整 Java EE 应用程序所需的所有功能。

【讨论】:

【参考方案3】:

我当然会关注 TomEE,因为其背后的想法是让 Tomcat 保持默认情况下缺少的所有 JavaEE 6 集成。这是一种很好的妥协

【讨论】:

【参考方案4】:

严格来说;如果没有 Java EE 功能,您的应用几乎不需要应用服务器 ;-)

就像其他人指出的那样,JBoss 具有(或多或少)完整的 Java EE 堆栈,而 Tomcat 只是一个 Web 容器。 JBoss 也可以配置为仅用作 Web 容器,然后它只是包含的 tomcat Web 容器的薄包装器。这样你就可以拥有一个几乎同样轻量级的 JBoss,它实际上只是 Tomcat 周围的一个薄“包装器”。那将几乎一样轻。

如果您不需要 JBoss 提供的任何额外功能,请选择您最喜欢的。哪个最容易为您配置和维护?

【讨论】:

在tomcat中使用web services和jmx有多难,能否提供一些好的参考/链接【参考方案5】:

我还读到,对于某些服务器,例如只需要注释持久性上下文,但在某些服务器中,注入应该手动完成。

【讨论】:

以上是关于JBoss vs Tomcat再次[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

glassfish v3 vs tomcat 7 [关闭]

JBOSS 6:[CachedConnectionManager] 为您关闭连接。请自行关闭

MyEclipse异常关闭导致Tomcat不能启动的问题

关闭 JBOSS 时出错

如何关闭 JBoss AS 7 服务器?

Jboss AS7 无法正常关闭