【问题标题】:Choosing an Open Source Application Server for Java EE [closed]为 Java EE 选择开源应用程序服务器 [关闭]
【发布时间】:2010-04-15 18:56:23
【问题描述】:

我知道这可能是一个反复出现的话题,但我已经阅读了很多文章,我仍然有疑问。另外,我想听听有关此问题的更多最新意见。

我的应用服务器的主要要求是:配置灵活,支持极高的并发用户数。它将是移动通信行业的系统,因此它也必须具有高可用性。

我将开发一个 Java EE 应用程序,而开源应用程序服务器是我唯一的选择。我在一个非常小的项目中使用了 GlassFish,我非常喜欢它。

【问题讨论】:

  • 我建议您添加更多关于什么是可取和可接受的以及什么不是的想法。

标签: java open-source jakarta-ee application-server


【解决方案1】:

我目前的想法:

  • 小型、快速上手且简单:Jetty
  • 更大、更健壮且非常庞大的用户知识库:Tomcat
  • 又大了,功能多了,不错 企业支持,启动速度较慢:JBoss

都可以支持庞大的用户群,并且都可以很好地完成 95% 的用例。

默认情况下,我会从顶部开始,然后随着您的情况/要求变得更复杂(例如您需要多少 Java EE 支持

此外,如果您注意不使用任何自定义功能,以后更改应该相对简单。

这纯粹是基于我的个人经验,有点简单——可以写这方面的书!

【讨论】:

    【解决方案2】:

    如果您正在寻找 Java EE 服务器,您基本上有两个选择:GlassFish 或 JBoss(Geronimo 或 Jonas 的社区太小,我不知道他们有什么严肃的参考资料 - 这并没有'并不意味着没有 - 我不会选择它们)。两者都是重要的平台,支持集群和 HA,并已用于构建大型集群并在必要时提供商业支持。

    现在,快速总结一下各个版本:

    • JBoss AS 5.1:Java EE 5 认证。支持HA, clustering,如果您不喜欢 XML,则附带管理控制台(但尚不支持通过控制台设置集群)
    • GlassFish v2.1:Java EE 5 认证。支持 HA、集群、better admin console than JBoss 5.1(尤其是集群设置,如果这很重要),很棒的 CLI 工具。
    • GlassFish v3:Java EE 6 认证。很新,不支持集群,集中管理。 3.0.1 版即将发布。
    • JBoss AS 6.0:Java EE 6 认证。尚未达到一般可用性。暂时不能多说,M2可能不代表最终版本。
    • GlassFish v3.1:Java EE 6 认证。将添加集中管理/集群、高可用性/状态复制等。今年要发布。见官方roadmap。

    最后,如果您的项目在 2011 年之前不会投入生产,我会考虑使用 Java EE 6。如果没有,那就选择 Java EE 5 服务器。无论如何,不​​要只根据网络意见做出选择。下载两台服务器,在两台机器上设置至少四个节点的集群(这是最低限度,如果可能,使用更大的集群),运行具有代表性的应用程序概念证明的基准。不要犹豫,让来自 JBoss 和 Oracle 的人参与进来,我很确定他们会很乐意帮助证明他们的解决方案是最好的 :)

    参考文献

    对于 JBoss,请查看 Bela Ban 在 JBoss World 2009 上的演讲 Large clusters in JBoss (pdf)。还可以查看来自 JBoss World 2010 的会话。对于 GlassFish,请查看他们的 stories,更具体地说,请查看 Telco。如需更多参考,请联系 Sun/Oracle 和 RedHat。

    【讨论】:

    • 无论如何,确保您的应用程序在参考实现上完美运行并不是浪费时间。
    【解决方案3】:

    如果您真的需要 Java EE(严格来说),那么 JBoss 是一个不错的选择。如果您不需要真正的 Java EE,那么使用 Tomcat 会很好。 SpringSource 还提供了支持名为 tc Server 的企业版 Tomcat,如果您不需要真正的 Java EE,这将是一个不错的选择。

    【讨论】:

      【解决方案4】:

      我实际上建议使用 GlassFish。除了您熟悉之外,它还使用 NIO 网络基础架构 (Grizzly),它支持非常多的并发连接。

      我们主要使用 JBoss,我可以告诉你 JBoss5 也可以支持相当多的连接(据我所知,它也使用基于 NIO 的连接器)。

      还有一个名为Resin的EJB容器,它是半开源的(基本上他们有开源版本和专有版本)。人们说它性能出色,但我没有机会进一步研究。

      我的最后一点是,您确定要使用 JavaEE EJB 容器吗?我们实际上是从 JavaEE EJB 容器开始的,但是由于我们的性能要求等,我们现在正在尝试迁移到 Tomcat+Spring。 EJB 对线程模型等有限制,如果您有 Web 浏览器以外的客户端,这可能会成为不必要的限制......

      在 JavaEE5 之前,您只有这个“TimerService”用于执行周期性任务,而 JMS 用于执行异步任务,这很重,而且会变得非常烦人。

      【讨论】:

      • Resin 旨在提供符合 JEE 6 Web Profile 的产品。当它准备好时,这将是一个非常有趣的平台。
      【解决方案5】:

      如果您说的是全船 Java EE,那么 Glassfish。

      GFv2.1 坚如磐石,GFv3 还太年轻,但提供了新的 Java EE 6。

      积极开发,免费和商业支持,良好的论坛。甲骨文已经发布了它的路线图。

      它易于使用、易于配置、组织良好。很棒的控制台。

      来自不同方面(Metro、Grizzly、JAX-RS、NetBeans 等)的人们提供的大量补充文档和文章。

      NetBeans + Glassfish 是一种开箱即用的无痛体验。

      提供集群和各种管理选项。

      【讨论】:

        猜你喜欢
        • 2013-06-09
        • 1970-01-01
        • 2015-02-05
        • 1970-01-01
        • 2011-02-11
        • 1970-01-01
        • 2013-04-06
        • 2011-01-31
        • 2012-11-13
        相关资源
        最近更新 更多