这似乎是一个古老的问题(它是:)),即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:请注意,我们仍将Spring和Hibernate与Tomcat一起使用
首先是事实,也不是 更好的 。如您已经提到的,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应用程序服务器:
Java EE
启动项目时,您应该了解它的要求。如果您在大型企业环境中,JBoss(或任何其他Java EE服务器)可能是正确的选择,因为它提供了对以下各项的内置支持:
我认为 Tomcat非常适合以Web为中心,面向用户的应用程序。如果后端集成开始发挥作用,则应(至少)考虑使用Java EE应用服务器。最后但并非最不重要的一点是,将为Tomcat开发的WAR迁移到JBoss应该是1天的练习。
其次,您还应该考虑环境内部的使用情况。如果您的组织已经运行了1,000个JBoss实例,那么无论您有何具体要求(考虑运营成本或技能提升等方面),您都可以始终使用它。当然,反之亦然。
我的2分