一尘不染

为什么Jboss比Tomcat“更好”?

java

我目前正在开始新的应用开发。应用程序设计师坚持认为我们使用 JBoss5 是因为它“更好”。是否有人对“更好”有更广泛的定义(如果如此)?

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

提前致谢


阅读 823

收藏
2020-12-03

共1个答案

一尘不染

说任何工具或框架都只是“更好”是可笑的。它总是取决于情况,架构等。您不一定要使用锤子来驱动螺钉。

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

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

  • Servlet / JSP容器
  • 日本国家发展研究院
  • EJB
  • 日本旅游协会
  • 聚类
  • 快取
  • JMS
  • 数据源/资源管理
  • JMX整合
  • OSGi支持
  • 网页服务
  • 门户网站
  • Web Bean(接缝)
  • 一些管理控制台
  • 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组织产生什么影响。
  • 您需要付费支持吗?
    • 您可以通过许多公司(包括我相信的Red Hat)找到对Tomcat的支持。
    • 您需要比较成本,因为我认为JBoss支持并不便宜,尽管我最近没有抬高价格。
  • 您需要做任何复杂的集群吗?
    • JBoss具有一些出色的集群功能,您可能会通过Red Hat获得良好的集群支持。但是,为了全面披露,我从未与其他框架进行任何复杂的集群比较。
  • 您是否需要高级事务管理(分布式事务,两阶段提交等)?

听起来不像是一个无耻的插件,但是Manning网站上免费提供了
JBoss in Action的第一章。尽管在本章中我们没有对JBoss与其他应用程序服务器和部署环境进行 直接
比较,但是我们还是在讨论架构上的差异,这与您的问题有关。

2020-12-03