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

2024-04-30

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

我有使用经验Tomcat56 在具有大量用户负载的大型应用程序中,它处理得很好(恕我直言)。两者都会运行在RedHat6在相同的硬件条件下(如果实施很重要)。

提前致谢


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

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

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

  • Servlet/JSP 容器
  • JNDI
  • EJB
  • JTA
  • 聚类
  • caching
  • JMS
  • 数据源/资源管理
  • JMX集成
  • OSGi支持
  • 网页服务
  • portals
  • 网豆(接缝)
  • 一些管理控制台
  • IoC 容器
  • etc.

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

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

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

  • Are you going to use standard JavaEE architectural components like EJB?
    • 顺便说一句,EJB 可以使用 JBoss 嵌入式容器在独立的 Tomcat 中运行,因此如果您只使用 EJB,那么您仍然不必使用 JBoss
  • 您要使用 Web 服务、门户、JMS 吗?
  • 您是否正在考虑使用 Web Beans 或 Seam 进行构建?
  • 您的 IT、支持和开发人员当前使用哪些部署平台(Tomcat、JBoss 等)?如果您要使用新的东西,您将需要支付额外的费用来学习新平台。
  • 如果您销售客户将部署的产品,它将对客户的 IT 组织产生什么影响。
  • Are you going to need paid support?
    • 您可以通过许多公司(我相信包括 Red Hat)找到对 Tomcat 的支持。
    • 您需要比较成本,因为我认为 JBoss 支持并不便宜,尽管我最近没有查过价格。
  • Will you need to do any sophisticated clustering?
    • JBoss 具有一些出色的集群功能,您可能会通过 Red Hat 获得良好的集群支持。不过,为了充分披露,我从未与任何其他框架做过任何复杂的集群来进行比较。
  • 您是否需要高级事务管理(分布式事务、两阶段提交等)

听起来不像无耻的插件,但《JBoss in Action》的第​​一章是免费提供 http://www.manning.com/affiliate/idevaffiliate.php?id=284_83在曼宁网站上。虽然我们不做direct在本章中,JBoss 与其他应用程序服务器和部署环境的比较,我们确实讨论了一些架构差异,这与您的问题相关。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么Jboss比Tomcat“更好”? [关闭] 的相关文章

随机推荐

  • Cabal 在 NixOS 上构建时找不到外部库

    我正在尝试使用 cabal2nix 在 NixOS 上构建一个内部 Haskell 项目 它包装 并因此依赖 一个外部库 在 Ubuntu 上可以通过以下方式构建 wget设置源 然后运行make make install ldconfig
  • Python 记录器应该作为参数传递吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正在开发的 Python 应用程序需要一个记录器 一位同事认为应该在每个使用它的类中创建和配置记录器 我的观点是 它应该在应用程序启动时创建
  • Excel VBA - 将 .xls 附加到文件名以打开文件

    我有代码可以打开带有可变日期的文件 如下所示 如果不在输入框中输入 m d y xls 此代码将无法运行 我只想在输入框中输入 m d y 请看一下并让我知道我缺少什么 谢谢 Dim wbkOpen As Workbook Dim strF
  • 如何使用 spring-test-junit5 进行嵌套测试?

    我一直在玩JUnit 5 http junit org junit5 and 弹簧测试junit5 https github com sbrannen spring test junit5 然后我尝试使用嵌套测试 http junit or
  • Firebase 云功能 - Stripe Connect Webhook 未触发

    我正在尝试设置我的 stripe webhook 以便在创建 更新 Stripe Connect 帐户或执行任何操作时自动调用 Firebase 云函数 仅当我手动转到 Stripe 仪表板 gt Webhooks 并点击 发送测试 Web
  • 在给定时间后停止 java 中的线程 - 不起作用

    我有一个复杂的函数 优化 可能会进入循环或只是花费太多时间 并且允许的时间由用户设置 因此 我试图在单独的线程中运行该函数 并在超过最大时间时停止它 我使用类似于下面的代码 但它不起作用 所以 int timeMax 2 time in m
  • 如何处理WPF中Grid Splitter生成的事件?

    我想要一个事件处理程序来处理移动网格拆分器时的事件 我不确定是否有一个 如果没有 我想我可以在行大小更改时生成一个事件 Thanks 您可以更改行的大小 但 GridSplitter 本身是一个 Thumb 因此有自己的事件 例如 Drag
  • 数据库索引:是好事、坏事还是浪费时间?

    这里通常建议添加索引作为性能问题的补救措施 我只讨论读取和查询 我们都知道索引会使写入速度变慢 多年来 我在 DB2 和 MSSQL 上多次尝试过这种补救措施 但结果总是令人失望 我的发现是 无论索引会让事情变得更好是多么 明显 事实证明查
  • glutPostRedisplay 不在循环内工作

    我试图让一个人在 y 轴上跳跃 所以我使用 2 秒的循环 第一秒它应该向下移动并弯曲膝盖 第二秒它应该向上移动 然后在起始位置完成 现在我刚刚开始让这个人在第一秒内跪下并弯曲膝盖 我还没有编写动画的其余部分 问题是 glutPostRedi
  • 带有反应导航的自定义图标 5

    我正在尝试将自定义图标与反应选项卡导航一起使用 但是 所有教程和文档 总是只涵盖通过 Ionicons 或 Materialdesign 实现图标 有没有办法实现我自己的图标 代码如下
  • 使用 const shared_ptr<> 的基于范围的 for 循环

    我有一个容器shared ptr lt gt 例如Avector
  • 如何将 DateTime 转换为自 1970 年以来的秒数?

    我正在尝试将 C DateTime 变量转换为 Unix 时间 即自 1970 年 1 月 1 日以来的秒数 看起来 DateTime 实际上是作为自 0001 年 1 月 1 日以来的 刻度 数来实现的 我目前的想法是从我的 DateTi
  • 使用虚假数据生成回形针图像上传 - Ruby on Rails Populator / Faker Gems

    我目前正在尝试用一堆假数据填充项目的开发数据库 以模拟数百篇文章 用户的外观和操作方式 我研究了不同的宝石来完成任务 例如 Factory Girl 但文档非常缺乏 我没有得到它 但最终使用了 Populator 和 Faker gems
  • php 登录curl 代码未按预期工作

    我正在尝试使用 php 中的curl 函数登录到特定页面 请检查下面的代码 我在 banggood com 连接我的电子邮件和密码 然后我想重定向到另一个私人页面 但它无法按预期工作 我没有收到任何错误 我被重定向到此页面 https ww
  • 如何将一个数表示为4个素数之和?

    这是问题所在 四个素数的和 http acm uva es p v101 10168 html 指出 输入的每一行包含一个整数 N N 输入示例 24 36 46 示例输出 3 11 3 73 7 13 1311 11 17 7 我第一眼就
  • 为什么更新的状态没有反映在事件侦听器中:React Native、Hooks

    我正在使用钩子来更新状态 在我的代码中 我有一个 AppState 事件侦听器 每当它触发时 我都会更新appState using 设置应用程序状态 但是事件监听器内的 appState 没有改变 但该值正在侦听器外部更新 谁能解释为什么
  • 快速会话未保存到 iPad

    我试图在用户登录时保存会话变量 这在计算机上有效 但是当我在电脑上尝试时iPad using Safari or Chrome它不会保存 这是我设置会话的地方 app set trust proxy 1 app use session se
  • 如何在 Eclipse 中使用 ssh 隧道设置 Subversion?

    我有一个远程服务器 在非标准 ssh 端口上托管我的 subversion 存储库 我想使用 Eclipse 的 subclipse 插件作为客户端来访问 SVN 存储库 我可以使用 svn specialssh 来访问存储库 其中spec
  • FBSessionDelegate 方法未触发

    我正在尝试实施最新的 Facebook Connect SDK 但遇到了一些麻烦 由于某种原因 委托回调FBSessionDelegate协议没有被解雇 我已按照 git Facebook 页面上的说明进行操作 并尝试模仿 Facebook
  • 为什么Jboss比Tomcat“更好”? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我目前正在开始一个新的应用程序开发 应用程序架构师坚持要求我们使用JBoss5因为它 更好 有谁对 更好 有更广泛的定义 如果是这样的话 我有使