为Java EE选择开源应用服务器

时间:2010-04-15 18:56:24

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

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

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

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

5 个答案:

答案 0 :(得分:7)

我目前的想法:

  • 小巧,快速入门且简单: Jetty
  • 更大,更强大,用户知识库非常庞大: Tomcat
  • 再次更大,功能更多,更好 企业支持,启动较慢: JBoss

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

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

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

这完全基于我的个人经验而且有点过于简单 - 人们可以写这本书!

答案 1 :(得分:5)

如果您正在寻找Java EE服务器,您基本上有两个选项:GlassFishJBoss(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,请参阅2009年JBoss World上的Bela Ban的演讲Large clusters in JBoss(pdf)。同时查看JBoss World 2010的会话。对于GlassFish,请查看他们的stories,更具体地说,请查看Telco。请联系Sun / Oracle和RedHat以获取更多参考资料。

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

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

还有一个名为Resin的EJB容器,它是半开源的(基本上它们都有开源版本和专有版本)。人们说它表现出色,但我没有机会进一步调查。

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

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

答案 4 :(得分:2)

如果你正在谈论全船Java EE,那么Glassfish。

GFv2.1非常坚固,GFv3还太年轻,但提供了新的Java EE 6。

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

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

记录确凿,大量补充文档以及处理其不同方面的人员的文章(Metro,Grizzly,JAX-RS,NetBeans等)

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

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