我知道这可能是一个反复出现的主题,但我读了很多文章,我仍然有疑问。另外,我想听听最近有关此事的意见。
我的应用服务器的主要要求是:灵活配置,支持极高数量的并发用户。它将成为移动通信行业的一个系统,因此它必须具有高可用性。
我将开发Java EE应用程序,开源应用程序服务器是我唯一的选择。我使用GlassFish进行了一个非常小的项目,我非常喜欢它。
答案 0 :(得分:7)
我目前的想法:
所有人都可以支持大量用户群,并且所有人都能很好地完成95%的用例。
默认情况下我会从顶部开始,然后在您的情况/要求变得更加复杂的情况下向下移动,例如您需要多少Java EE支持
此外,如果您不小心不使用任何自定义功能,稍后更改应该相对简单。
这完全基于我的个人经验而且有点过于简单 - 人们可以写这本书!
答案 1 :(得分:5)
如果您正在寻找Java EE服务器,您基本上有两个选项:GlassFish或JBoss(Geronimo或Jonas只有太小的社区,我不知道有严重的参考资料他们 - 这并不意味着没有 - 我不会选择他们)。两者都是严肃的平台,支持集群和HA,并且已被用于构建大规模集群并在重要时提供商业支持。
现在,各种版本的快速摘要:
最后,如果您的项目在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是一种无痛的开箱即用体验。
提供群集和各种管理选项。