当前位置: 首页 > 面试题库 >

为什么Jboss比Tomcat“更好”?

爱琪
2023-03-14
问题内容

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

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

提前致谢


问题答案:

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

我写了《 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与其他应用程序服务器和部署环境进行 直接
比较,但是我们还是在讨论架构上的差异,这与您的问题有关。



 类似资料:
  • 问题内容: 我试图理解 为什么Java的ArrayDeque比Java的LinkedList更好, 因为它们都实现了Deque接口。 我几乎看不到有人在他们的代码中使用ArrayDeque。如果有人对ArrayDeque的实现方式有了更多的了解,那将是有帮助的。 如果我理解它,我会更自信地使用它。对于JDK实现管理头和尾引用的方式,我不清楚。 问题答案: 链接结构可能是最糟糕的结构,要在每个元素上

  • 问题内容: 一直有人告诉我,在调试应用程序时,JavaScript的方法优于简单的使用方法。为什么是这样?有没有一个很好的例子,有人可以指出我哪里是更好的选择? 问题答案: 正在阻止 在非调试环境中不容易被抑制 通常可以很好地格式化对象并允许遍历它们 日志记录语句通常具有交互式的代码指针,该代码发出了日志记录语句 您一次只能查看一个以上的消息 可以通过直观的格式设置不同的日志记录级别

  • 问题内容: 我已经看到了两种方式,但是哪种方式更适合Python? 哪种方法被认为是更好的Python? 问题答案: 第二个选项是Pythonic,原因有两个: 它是 一个 运算符,转换为一个字节码操作数。另一行是真的; 两个操作员。 碰巧的是,Python会 优化 后一种情况 并转换成任何情况,但这是CPython编译器的实现细节。 这接近于您在英语中使用相同逻辑的方式。

  • > 我看到接口只允许实现方法。那么为什么我们甚至需要这个接口呢?为什么我们不能简单地在我们想要的任何类中定义和声明该方法,而无需实现接口? 我知道这是正确的:

  • 问题内容: 许多Java书籍都将该语句描述为比该语句快。但是我没有找到任何地方为什么切换比if更快。 例 我有一种情况,我必须选择两项中的任何一项。我可以使用 要么 考虑item和BREAD是一个恒定的int值。 在上面的示例中,哪个操作更快,为什么? 问题答案: 因为有很多情况下,有一些特殊的字节码可以有效地评估switch语句。 如果使用IF语句实现,则将进行检查,跳转到下一个子句,进行检查,

  • 问题内容: 阅读此内容后,引人注目: BSON还被设计为快速编码和解码。例如,整数存储为32(或64)位整数,因此不需要在文本之间进行解析。对于小整数,此方​​法比JSON使用更多的空间, 但解析速度要快得多 。 根据我的阅读,使用BSON的全部目的是因为它对CPU的负担更少,并且编码/处理速度更快。 但是,我对Node.js进行了一些测试,并使用本机JSON方法使BSON脱颖而出。一些测试表明J