6

I know this may be a recurring topic, but I have read a lot of articles and I still have doubts. Also, I would like to hear more recent opinions about this.

The main requirements of my application server are: flexible configuration, support for a extremely high number of concurrent users. It will be a system for the mobile communications industry, so it must have high availability as well.

I am going to develop a Java EE application and Open Source Applications Servers are my only option. I have used GlassFish for a very small project and I really liked it.

4

5 回答 5

7

我目前的想法:

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

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

我会默认从顶部开始,随着您的情况/要求变得更加复杂,例如您需要多少 Java EE 支持,我会在列表中向下移动

此外,如果您小心不要使用任何稍后更改的自定义功能应该相对简单。

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

于 2010-04-15T21:56:25.503 回答
5

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

现在,快速总结各种版本:

  • JBoss AS 5.1:Java EE 5 认证。支持HA、集群,如果您不喜欢 XML,则附带管理控制台(但尚不支持通过控制台设置集群)
  • GlassFish v2.1:Java EE 5 认证。支持 HA、集群、比 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 认证。将添加集中管理/集群、高可用性/状态复制等。今年要发布。请参阅官方路线图

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

参考

对于 JBoss,请查看 Bela Ban 在 JBoss World 2009 上的演讲Large clusters in JBoss (pdf)。还可以查看JBoss World 2010中的会话。对于 GlassFish,请查看他们的故事,尤其是Telco中的故事。如需更多参考资料,请联系 Sun/Oracle 和 RedHat。

于 2010-04-16T03:14:54.590 回答
3

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

于 2010-04-15T19:10:39.667 回答
2

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

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

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

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

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

于 2010-04-15T19:35:32.103 回答
2

If you're talking full boat Java EE, then Glassfish.

GFv2.1 is rock solid, GFv3 is too young to say, but offers new Java EE 6.

Actively developed, free and commercial support, good forums. Oracle has published it roadmap for it.

It's easy to use, easy to configure, well organized. Great console.

Really well documented, vast amounts of supplementary documents and article from folks working different aspects of it (Metro, Grizzly, JAX-RS, NetBeans, etc.)

NetBeans + Glassfish is a painless out of box experience to get started.

Offers clustering and all sorts of management options.

于 2010-04-15T22:17:25.173 回答