为什么Jboss比Tomcat“更好”?[已关闭]

2022-09-01 01:13:49

我目前正在开始新的应用程序开发。应用程序架构师坚持我们使用JBoss5,因为它“更好”。有没有人对“更好”有更广泛的定义(如果是这样的话)?

我有在具有大用户负载的大型应用程序中使用Tomcat5和6的经验,并且它处理得很好(恕我直言)。两者都将在相同的硬件条件下在RedHat6上运行(以防实现很重要)。

提前致谢


答案 1

说任何工具或框架只是“更好”是荒谬的。它总是取决于情况,架构等。你不一定想用锤子来驱动螺丝。

我写了JBoss in Action,所以我显然喜欢JBoss技术,但我是第一个说JBoss在许多情况下可能被过度杀戮的人。例如,对于我开发的最后两个站点,使用Grails构建并部署在独立的Tomcat实例上更有意义。

说使用 JBoss 时得到的只是 EJB 和 JMS 有点不公平。JBoss 提供许多服务和功能,包括:

  • Servlet/JSP container
  • 断续器
  • EJB
  • 日本电信协会
  • 聚类
  • 缓存
  • 断续器
  • 数据源/资源管理
  • JMX 集成
  • 支持操作系统
  • 网络服务
  • 门户
  • 卷筒豆(接缝)
  • 某些管理控制台
  • IoC 容器
  • 等。

吸引许多架构师加入 JBoss 的是它的灵活性。它使用插件架构,允许您添加和删除服务。正如其他人所说,使用Tomcat作为其Servlet容器,因此您可以从字面上将JBoss缩小到它实际上只是一个Tomcat服务器的位置。这样做有什么好处?如果您认为要利用 JBoss 的其他功能,则可以面向未来。

JBoss 中的这些服务是预先集成的,并努力提供一致的部署模型,最大限度地减少您编写应用程序逻辑或配置以自行集成它们的工作量。话虽如此,像Spring这样的其他框架在支持集成许多流行库和框架的统一方式方面也做得很好。但是,由于他们专注于集成第三方库,因此服务之间的互操作性取决于您。由于 JBoss 正在构建服务和集成平台,因此他们花时间开发(和提供支持)互操作性。

做出选择时要问的一些问题是:

  • 你打算使用像EJB这样的标准JavaEE架构组件吗?
    • 顺便说一句,EJB可以使用JBoss嵌入式容器在独立的Tomcat中运行,所以如果EJB是你使用的全部,那么你仍然不必使用JBoss。
  • 您是否打算使用 Web 服务、门户和 JMS?
  • 您是否正在考虑使用Web Beans或Seam进行构建?
  • 您的 IT、支持和开发人员目前使用哪些部署平台(Tomcat、JBoss 等)?如果您要使用新的东西,您将需要支付额外的成本来学习新平台。
  • 如果您正在销售客户将部署的产品,它将对客户的 IT 组织产生什么影响。
  • 您是否需要付费支持?
    • 您可以通过许多公司(包括我相信的红帽)找到对Tomcat的支持。
    • 您需要比较成本,因为我不认为JBoss支持很便宜,尽管我最近没有查找价格。
  • 是否需要执行任何复杂的群集?
    • JBoss 具有一些出色的集群功能,您可能会通过红帽获得良好的集群支持。不过,为了充分披露,我从未与任何其他框架进行任何复杂的聚类分析,以便能够进行比较。
  • 您是否需要高级事务管理(分布式事务、2 阶段提交等)

这听起来不像是一个无耻的插头,但JBoss in Action的第一章可以在Manning网站上免费获得。虽然我们在本章中没有对 JBoss 和其他应用程序服务器和部署环境进行直接比较,但我们确实会稍微讨论一下体系结构差异,这与您的问题相关。


答案 2

我目前正在开始新的应用程序开发。应用程序架构师坚持我们使用JBoss5,因为它“更好”。有没有人对“更好”有更广泛的定义(如果是这样的话)?

有趣的是,因为JBOSS使用Tomcat作为其servlet / JSP引擎。

听起来“更好”的意思是“支持EJB和JMS”,因为Tomcat开箱即用,两者都没有。

但是,如果您的应用程序不使用 EJB 或 JMS,则这不是问题。

如果你确实需要它们,你可以用OpenEJB和RabbitMQ或ActiveMQ将它们添加到Tomcat中。

我会问你的应用程序拱门,他们最后一次写Power Point幻灯片或UML文档之外的东西是什么时候。这种反应可能会让你大吃一惊。


推荐