【问题标题】:Application server - to use or not use?应用服务器——使用还是不使用?
【发布时间】:2010-10-31 04:43:22
【问题描述】:

通常我们使用 WebLogic 或 JBoss 来部署我们的应用程序。我知道当使用像 Spring 这样的开源解决方案时,您可以开发您的应用程序并在像 Jetty 这样的简单 servlet 容器上运行它。那么问题是为什么还要使用应用服务器呢?

【问题讨论】:

  • 让它成为社区维基,因为它是主观的和边缘化的争论
  • 对我来说似乎是一个合理的问题。
  • @Cheeso 我并没有说这不合理,而是像“为什么还要打扰应用服务器?”这样的措辞。是主观的和争论的。
  • 我当然不这么认为。我认为它更像是“这件事的理由是什么?”以同样的方式,我可能会看到类似“我为什么要费心使用 SSL?”这样的问题。等
  • 正如 cheeso 所说,这是一个客观的问题,“应用服务器有什么用处?”。也许措辞不好,但这并不能使它成为争论的焦点。

标签: java jakarta-ee jetty application-server


【解决方案1】:
  • 高级功能 - 比如 事务、安全集成、池、高性能队列、集群。
  • 性能(weblogic 有一个热 JVM)
  • 操作和 管理界面。

除此之外...我不知道?

在大多数情况下,YAGNI

【讨论】:

  • 我同意最后一点。除非你是 Twitter,否则你可能不需要它。
  • JTA 用于事务,Spring Security 用于安全,Apache DBCP 用于连接池,ActiveMQ 用于队列。在 Tomcat/Jetty 上一切皆有可能。 Tomcat 有一个足够的管理控制台,但我不是管理员。但我仍然喜欢 WebLogic。如果其他人为许可证买单,我认为它是市场上最好的应用服务器 - 毫无疑问。
  • 好吧,我咬一口:为什么?为什么 WebLogic 比 Tomcat/Jetty 更好?你说它是最好的应用服务器。什么使它最好?
  • 我的经验。个人意见。纯属主观。坚如磐石,乐于发展。我认为BEA在一段时间后失去了很多人才,现在甲骨文拥有他们,他们的未来是一个悬而未决的问题,但当他们表现出色时,他们是迄今为止最好的。 WebSphere 腐烂了,所有 IBM 产品也一样; JBOSS 有 10,000 个您必须手动编辑的配置文件以及管理员可以想象的最简单的 JMX 控制台; Glassfish 永远不会很重要。
【解决方案2】:

没有人因为在企业环境中使用 WebLogic 或 WebSphere 而被解雇。对于大企业和管理者来说,不仅技术方面很重要。这些应用程序服务器提供功能齐全的管理控制台,即使是没有经验的管理员也易于使用。此外,更容易找到支持服务。使用开源组件的公司需要投资有经验的开发人员来设置所有内容并进行维护。应用服务器在公司(例如银行)中广泛使用,他们的业务与软件无关。对他们来说,从单一供应商处购买所有东西(软件许可、安装/配置、支持服务)更有意义。

【讨论】:

  • +1 用于提及管理功能,但这与软件支持方面的内容确实正交。您可能想将它们分开...
【解决方案3】:

如果你要问,你买不起。

说真的,成熟的应用程序服务器具有更多功能,您必须决定它们是否值得您使用,例如 Tomcat 或 Jetty。我认为这里不适合尝试给出所有原因,但这里有一个:应用程序服务器可以更容易地将功能和服务包装在事务中。更多理由here.

【讨论】:

    【解决方案4】:

    WebLogic 和 JBoss 的集群、故障转移和会话同步特性仍然使它们在大型数据中心中物有所值。

    当然,JBoss 使用 Tomcat 作为他们的 Web 前端,所以它不是非此即彼。

    我见过人们将 OpenEJB 和 ActiveMQ 添加到 Tomcat 并获得 Java EE 应用服务器的所有功能。这条线相当模糊。

    Spring DM 服务器建立在 Tomcat 之上。看看它是否可以开始从 Java EE 应用服务器人员手中夺走注意力和市场份额将会很有趣。

    我喜欢 Spring——它是我的首选框架——但我可以告诉你,知道 Java EE 是一个由多个应用服务器供应商实施的标准,这让一些人感到欣慰。如果您不使用特定于供应商的扩展,理论上您的代码可以从 WebSphere 移动到 WebLogic 到 JBoss 而无需更改。一些大型 IT 商店就是这样。他们回避 Spring,因为它不是标准。这是罗德约翰逊和他的团队的创意。如果您决定不喜欢他们的东西,那您就无处可去。

    有一个新的 Java IoC/DI 标准正在开发中。 Rod Johnson 和 Bob Lee 正在为此努力。也许这会开始平息一些恐惧。

    【讨论】:

      【解决方案5】:

      应用服务器是一种架构解决方案。如果您要考虑应用程序的不同可重用模块,则必须使用它。如果您不介意您的服务应该通过 HTTP 堆栈实现,那么 EJB 必须是您的默认选项。有了 AS,您就有了一个已经打包好的解决方案,可以以架构方式解决良好实践。您可以使用开箱即用的队列、主题、jms 等,这些都是 Java EE 标准。 但我认为您必须以这种架构 buzz 的方式思考您的所有应用程序,才能判断 AS 决策。

      【讨论】:

        【解决方案6】:

        几个原因,其中大部分可能适用于也可能不适用于特定需求。

        1) 支持。许多企业喜欢与开发服务器的供应商签订支持合同。使用开源解决方案,您几乎可以“靠自己”。

        2) 完整的 Java EE / EJB 支持。虽然我自己并不觉得这特别有用,但这些功能已被商业应用程序广泛使用。如果你需要它们,真的别无选择。如果你不需要它们,它们就是浪费。

        3) 良好的管理控制台。 Tomcat 有一个管理控制台,允许您添加和删除应用程序。据我所知,就目前而言。 WebSphere 有这一点(虽然不是很精简),但您也可以更改连接池大小、数据源、线程池大小、更改日志配置(非常高的粒度),并激活内存和 JVM 分析。大多数情况下无需重新启动应用服务器。据说,集群也相对容易设置。 tomcat 也明显缺少安装 .EAR 文件的功能,如果您要安装多个相互关联的应用程序,那么管理它们将变得非常痛苦。

        您也可以(至少)在 tomcat 中执行 (3) 中的大部分操作,但不能通过管理 GUI。有些人喜欢有一个漂亮的 GUI。

        【讨论】:

          【解决方案7】:

          有些人喜欢“以防万一”拥有 EJB 支持(Java EE 规范)

          【讨论】:

          • 我同意,只要您将“以防万一”保留在那里。在找到使用它们的应用程序之前,您根本不需要 EJB 支持。如果您自己进行所有开发,那么几乎从来没有有充分的理由使用它们。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-03-21
          • 2011-11-12
          • 1970-01-01
          • 2011-01-29
          • 2013-09-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多