【问题标题】:Jboss or TomcatJboss 或 Tomcat
【发布时间】:2011-05-12 00:04:56
【问题描述】:

我在公司的基础架构团队(Jboss 4.02/Tomcat 5.5/Weblogic 8.1 服务器)工作...一些 weblogic java 应用程序正在迁移到 jboss/tomcat 服务器。那么我们需要满足哪些标准考虑我们是否需要去jboss或tomcat?哪个是最好的选择?

提前致谢, 拉赫什

【问题讨论】:

标签: java tomcat jboss application-server


【解决方案1】:

主要区别当然在于 JBoss 是一个应用程序服务器并支持完整的 Java EE 堆栈,而 Tomcat 是一个 servlet 引擎 并且仅支持 Java EE 中定义的一小部分 API。

因此,您的主要标准应该是:您需要哪些 API(前端、业务逻辑、持久性、第三方......)?

您不应该轻易做出这个决定。您提出这个问题的事实表明,您可能没有机会同时使用这两种技术并熟悉 Java Enterprise 堆栈背后的概念(Java EE 与 Spring 与 DIY)。

我的建议是花时间评估这两个系统 - 看起来你可以同时使用这两个系统。

  • 如果您不需要太多,最好使用 Tomcat,它体积小且易于使用,但如果您需要高级功能,配置起来可能是一场噩梦。
  • JBoss AS 带有完整且成熟的堆栈。一切都恰到好处并且运行良好 - 您必须付出的代价是它更大,并且需要更长的时间来启动/停止/重新部署。

但再说一遍:这是一个严肃的决定,对几乎所有事情都有很大影响......

【讨论】:

    【解决方案2】:

    Tomcat 和 JBoss 都非常容易安装 - 只需解压缩文件,然后使用脚本启动它。 Tomcat 和 JBoss 对 IDE、监控工具等产品都有很好的支持。

    但在您的迁移案例中,JBoss 是更好的选择。您的 Web 应用程序很可能需要 JNDI 数据源和 JTA 事务——这些东西内置在 JBoss 4+ 中,而您必须将它们移植到 Tomcat 5.x 上,付出很多努力。您的旧 WAR 将在 JBoss 上轻松找到 JTA 和 JNDI 数据源。 Tomcat 确实可以添加这些功能,但是 JBoss 将它们很好地封装到系统中。因此,即使您没有 EJB 或 JMS,那么 JBoss 仍然是一个不错的选择,因为许多应用程序确实需要 JTA 和 JNDI。

    当然,如果您为您的应用程序找到 EAR 文件,那么 Tomcat 将无法工作。然后 JBoss 会很好地部署 EAR 文件。

    【讨论】:

    • JNDI 数据源在 Tomcat 上工作,包括连接池。如果您只使用本地事务,则可以不使用 JTA,请参阅 Spring 的 DataSourceTransactionManager。我并不是说它总是最好的解决方案,但肯定是可能的。
    【解决方案3】:

    JBOSS 使用 Tomcat 作为其 servlet/JSP 引擎,所以它是 JBOSS Tomcat 或 WebLogic。

    答案取决于原始应用程序是使用 EJB 还是 JMS 服务。如果有,您必须使用 JBOSS,因为 Tomcat 不支持 EJB(除非您添加 OpenEJB)或 JMS(除非您添加 RabbitMQ 或 OpenJMS 之类的东西)。

    如果您不使用 EJB,而只有 JSP、JNDI 数据源和 JDBC,那么您可以将您的应用程序部署为 Tomcat 上的 WAR 文件,并完全传递整个 Java EE 堆栈。

    【讨论】:

    • jboss 中的tomcat 版本是6.0 版的一个分支,叫做jboss web,所以从某种意义上说,它与tomcat 是不同的实体,尽管它来自相同的来源。
    • @duffymo - 你确定 Tomcat 不支持 JMS 吗?我已经看到在 Tomcat 中运行的应用程序使用 ActiveMQ 作为 JMS 提供程序。这和使用 HornetQ 作为提供者的 Jboss 7 不一样吗?
    • 没有 ActiveMQ。没有修饰的Tomcat 仅仅是一个servlet/JSP 引擎。但是是的,您甚至可以添加 OpenEJB 和 ActiveMQ 并使其成为完整的 Java EE 应用服务器。
    【解决方案4】:

    我认为你应该考虑从不同的输入数据开始:

    • 申请要求是什么?
    • 生产限制是什么?
    • 哪种产品适合管理团队?

    只需用 2 个产品和这些标准编写一个矩阵,您的选择就完成了!!! Jboss 比 Tomcat 重得多,但可以在应用程序就位的同时提供一些附加值?您是否有一些 Nagios/Tivoli 或任何其他 SNMP 管理基础架构?在这种情况下,您可以轻松找到提供专有 MIB 的 SNMP 适配器来管理您的 JBoss 服务器...旧版本中的 JMX Bean 是管理此类工具的一种非常方便的方式

    HTH 杰罗姆

    【讨论】:

      猜你喜欢
      • 2011-12-27
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2011-05-26
      • 2019-06-23
      • 2014-11-01
      • 2011-11-05
      • 2014-02-14
      相关资源
      最近更新 更多