【问题标题】:Good Java application server for ORM [closed]用于 ORM 的优秀 Java 应用服务器 [关闭]
【发布时间】:2012-08-22 15:27:50
【问题描述】:

我刚刚与一位经验丰富且合格的同事就 JPA 和应用程序服务器进行了交谈。

现在,我正在将 JPA 与 Glassfish 一起使用,他说这是一个糟糕的应用程序服务器,因为开销很大。他还提到他正在使用 Tomcat,这是一个标准,它也有一个缺点,即不支持 Java EE 中的 JPA 等重量级。然后是一些名字,比如 Hibernate 和 Spring,我听说过但没有处理过。

所以我的问题是:对于支持 Java EE 和 JPA 且流行且快速的应用服务器,有哪些不错的选择?

注意:我过去曾问过一个类似的问题,但不知何故,它被认为是非建设性的。如果您认为这是一篇非建设性的帖子,请在关闭之前写下回复,详细说明原因。

【问题讨论】:

  • 您的问题不是特定的编程问题,会引起争论。没有单一的答案。您的同事可能对 GlassFish 有偏见,并且可能会大谈特谈,但与他坐下来并理解他的推理(需要基于现实世界的事实)来表达他的观点会更有建设性,而不是接受它面值。
  • 受欢迎程度有点客观。例如,我认为 Jonas Application Server (jonas.ow2.org)客观地不如主流应用服务器受欢迎(这并不意味着它是糟糕的产品)。顶级应用服务器是 Glassfish、Tomcat、JBoss、WebLogic 和 WebSphere。判断应用服务器性能的参数太多了,取决于平台、硬件、JVM、使用的特性等。
  • Re: Rajesh,这里有很多与编程无关的有效问题,所以我认为这个问题不会比其他问题更“有问题”。我在这里发布这个问题,知道每个人都可以有不同的意见,但它是否会成为一场盛宴,这取决于受访者的民事分歧/讨论能力。但是,是的,我不会把所有的事情都看在表面上,这就是为什么我要求你们提供各种各样的意见! :)。缩小我的问题范围是:如果我只使用 JPA,相对于其他一些,Glassfish 是不是一个糟糕的选择。

标签: java jakarta-ee jpa orm application-server


【解决方案1】:

对于支持 Java EE 和 JPA 也流行且快速?

您选择哪种服务器取决于您的需求。如果您的应用程序中不需要任何 EE 功能(EJB、事务等),那么使用重量级服务器没有多大意义,您可以选择兼容(部分符合规范)更轻的 Tomcat(没有您无论如何都不会使用的所有这些依赖项)并完成工作。

如果您想对所有应用程序服务器进行具体评论,那么您可能应该做一些研究,看看哪台服务器更适合您的您的要求。但这只是我的看法...

【讨论】:

    【解决方案2】:

    我正在使用带有 JPA Hibernate 实现的 Jetty,它工作得非常好。开箱即用,它只是 JavaEE 规范的一个子集,但它是轻量级的,可以使用外部库进行扩展,以添加缺少的 JavaEE 部分。

    (我的基于码头的独立应用程序在嵌入式系统上使用 160MB 可用 RAM 运行)

    【讨论】:

      【解决方案3】:

      在我看来:JBoss 是最流行和最稳定的开源应用服务器。

      Stack Trace 上的讨论很好

      【讨论】:

      • 定义“最稳定”、“最流行”?如果你要声称某事,证据是先决条件。如果您没有证据,那么这是基于您从事的某些项目的个人意见......因此需要“在我看来”,而不是声称某事是事实。 “最受欢迎”是什么意思?它可能在许多方面存在缺陷,但很受欢迎(例如 Windows 操作系统)。
      • @DataNucleus 对不起.. 我更正了
      【解决方案4】:

      我建议您首先了解您的应用程序需求,并了解您为什么需要 JPA。
      我不反对 JPA,但在某些情况下,它可能会引入性能问题,您不希望您的应用程序有这个问题。
      话虽如此,我还是建议您使用支持 EJB-Lite 的服务器。
      您可以使用例如上面建议的 JBoss。
      另一个有趣的选择是使用 TomEE ,它提供了完整的基于 tomcat 的 web-profile 堆栈。

      【讨论】:

      • 我使用 JPA 是因为它使 ORM 更易于维护。如果我手动执行 ORM,则在需要更改某些内容时必须跟踪变量的顺序和类型变得很麻烦。到目前为止,瓶颈不在涉及 ORM 的层中,这就是我使用 JPA 的原因。我想我想知道的一件事是,在不同的领域,比如 Glassfish、Tomcat、JBoss 等之间是否有任何全面的基准测试?能找到这样的东西很方便。
      • 很公平,这是您的选择。除了寻找可能仅针对特定用例的基准测试(不幸的是,我过去也看到有偏见的基准测试)之外,我还建议您使用分析器并检查您当前的应用程序堆栈是否存在瓶颈。
      • 这在概念上不是瓶颈,因为限制步骤是脚本触发之间的长时间强制等待间隔,因此速度并不那么重要。至于客观性,这个世界上几乎任何东西都可能存在偏见(甚至是你和我的 cmets),所以阅读基准的警告不是关于它们是否有偏见,而是读者是否在字里行间阅读并咨询其他基准/评论.
      • 我同意你的评论,我们可以说这个世界上的任何事物都可能存在偏见。我只是想确定你知道基准不应该被视为理所当然。不幸的是,我不是 glassfish 的用户。自 2006 年以来我一直在使用 JBoss,我对此非常满意,尤其是使用 JBoss AS 7。
      • 好的,JBoss 上的票很多,所以这是我最有可能阅读的候选人。我认为我接下来要寻找的一件事是 Glassfish 和 JBoss 之间的二元比较,并了解人们为什么选择其中一个。希望谷歌有很多关于这方面的文章!附带说明:我的同事觉得我问的问题很初级 - 如果它是初级的,我想知道你们所有人在大学毕业后如何为你提供这些初级知识 - 阅读大量书籍/API?
      【解决方案5】:

      您可以在完整的 Java EE 服务器之外使用 JPA,但必须正确引导它。我相信 Spring 有办法做到这一点,并允许您在 tomcat、jetty 等中使用 JPA...

      【讨论】:

        【解决方案6】:

        您有多种选择 Java EE 应用程序服务器。 Here 是来自 Wiki 的流行 Java EE 服务器的比较。它们都是很好的应用服务器。但最重要的不是服务器。使用对你的开发环境更方便的服务器更重要。选择对您更方便的服务器。

        【讨论】:

        • 酷,我没有注意到关于那个的 wiki 页面。
        猜你喜欢
        • 2011-04-16
        • 1970-01-01
        • 2012-10-17
        • 2010-10-05
        • 2012-10-07
        • 2010-09-07
        • 2010-09-06
        • 2011-03-16
        • 1970-01-01
        相关资源
        最近更新 更多