JBoss vs Tomcat再次

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

我知道Tomcat只是一个servlet引擎,JBoss提供了更多function,但是我不明白为什么Tomcat在某些情况下比jboss更好用。 我在某处读到JBoss有一个可插拔的体系结构,如果需要的话,你可以从JBoss中拔出一些function,使其成为一个tomcat servlet容器。 如果是这样的话,那么不是使用Tomcat来做这件事情,而是为了留下回头的东西。

我发现赞成Tomcat的另一个解释是它是轻量级的,这意味着更less的内存要求,或者这也允许更快的响应。 同样,我需要知道,不会jboss加载组件按照要求,即如果我只使用servlet,那么将不会跳过剩余的function,自动变得轻量级。

从本质上讲,我的应用程序没有任何Java EEfunction,但是由于上述原因,支持Tomcat的“轻量级”参数听起来不够有说服力。

请帮忙。

编辑:我们最终决定使用tomcat,现在已经使用了6个多月,使用起来非常方便。 事实上,我们发现了一些实际的用法,我们可以很容易地在同一台服务器机器上为不同的开发人员运行多个tomcat实例,而使用jboss也是如此。

我发现tomcat对于我们的工作来说是无忧无虑的,因此当您不使用Java EE的许多function时可能是正确的select。 PS:请注意,我们仍然使用Spring和Hibernate与Tomcat

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

Tomcat相当轻量级,如果您需要Servlet API以外的某些Java EEfunction,则可以通过提供所需的库作为应用程序的一部分来轻松地增强Tomcat。 例如,如果您需要JPAfunction,您可以包含Hibernate或OpenEJB,而JPA 几乎可以开箱即用。

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

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

  1. JMS消息传递用于asynchronous集成
  2. Web服务引擎(JAX-WS和/或JAX-RS)
  3. 像JMX和脚本pipe理界面的pipe理function
  4. 高级安全性,例如与第三方目录的即时可用的集成
  5. EAR文件而不是“仅”WAR文件支持
  6. 所有其他“伟大的”Java EEfunction,我不记得:-)

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

其次,你也应该考虑到你的环境中的使用。 如果你的组织已经运行了1000个JBoss实例,那么无论你的具体要求如何(考虑操作成本或者技能提升等),你总是可以select这个实例。 当然,反之亦然。

我的2分

看看TOMEE

它具有构build完整Java EE应用程序所需的所有function。

我一定会期待TomEE,因为后面的想法是让Tomcat默认缺less所有的JavaEE 6集成。 这是一种很好的妥协方式

严格来讲; 没有Java EEfunction,您的应用程序几乎不需要应用程序服务器;-)

就像其他人指出的那样,JBoss只有一个(或多或less)完整的Java EE堆栈,而Tomcat只是一个webcontainer。 JBoss可以被configuration为只能作为一个web容器,它只是一个简单的包装tomcat webcontainer周围。 这样你就可以拥有一个几乎一样轻量级的JBoss,这实际上只是Tomcat的一个简单的“包装”。 这几乎是轻而易举的。

如果你不需要JBoss提供的额外function,那就去找一个你最喜欢的。 哪一个configuration和维护最简单?

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