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

发布于 2024-08-28 16:26:16 字数 1539 浏览 8 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

烟凡古楼 2024-09-04 16:26:16

我目前的想法:

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

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

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

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

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

My current thoughts:

  • Small, Fast to start and simple: Jetty
  • Bigger and more robust and very large knowledge base of users: Tomcat
  • Bigger again, more features, good
    enterprise support, slower to start: JBoss

All can support large user bases and all will do 95% of use cases well.

I'd start by default at the top and move down the list as your situation/requirements get more complex e.g. how much Java EE support you need

Also if you are careful on not using any custom features changing at a later point should be relatively simple.

This is purely based on my personal experience and is a bit simplistic - one could write books on this!

糖粟与秋泊 2024-09-04 16:26:16

如果您正在寻找 Java EE 服务器,基本上有两个选择:GlassFishJBoss (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 中的大型集群 (pdf),位于 JBoss World 2009。另请查看 < a href="http://www.redhat.com/promo/summit/2010/sessions/jboss.html" rel="nofollow noreferrer">JBoss World 2010。对于 GlassFish,请查看他们的故事,更具体地在 电信公司。请联系 Sun/Oracle 和 RedHat 以获取更多参考。

If you're looking for a Java EE server, you basically have two options: GlassFish or JBoss (Geronimo or Jonas just have too small communities and I'm not aware of serious references for them - which doesn't mean there aren't any - I wouldn't pick them). Both are serious platforms, support clustering and HA and have been used to build large scale clusters and offer commercial support if this matters.

Now, a quick summary of the various versions:

  • JBoss AS 5.1: Java EE 5 certified. Supports HA, clustering, comes with an admin console if you're XML averse (but doesn't support cluster setup through console yet)
  • GlassFish v2.1: Java EE 5 certified. Supports HA, clustering, better admin console than JBoss 5.1 (especially for the cluster setup, if this matters), great CLI tool.
  • GlassFish v3: Java EE 6 certified. Very new, doesn't support clustering, centralized administration. Version 3.0.1 to be released soon.
  • JBoss AS 6.0: Java EE 6 certified. Didn't reach General Availability yet. Can't say much about it for now, M2 might not be representative of final version.
  • GlassFish v3.1: Java EE 6 certified. Will add Centralized Administration / Clusters, High availability / State replication and more. To be released this year. See the official roadmap.

At the end, if you project won't go in production before 2011, I would consider Java EE 6. If not, then go for a Java EE 5 server. In any case, don't base your choice only on opinions of the web. Download both server, setup a clusters of at least four nodes on two machines (that's a minimum, use a bigger cluster if possible), run a benchmark with a representative proof of concept of your application. And don't hesitate to involve folks from JBoss and Oracle, I'm pretty sure they'll be happy to help at proving their solution is the best one :)

References

For JBoss, have a look at Bela Ban's talk Large clusters in JBoss (pdf) at JBoss World 2009. Also check the sessions from JBoss World 2010. For GlassFish, have a look at their stories and more specifically in the Telco. Contact Sun/Oracle and RedHat for more references.

慢慢从新开始 2024-09-04 16:26:16

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

If you really need Java EE (strictly speaking) then JBoss is a good option. If you don't need true Java EE then you would be well served by using Tomcat. SpringSource also provides an enterprise version of Tomcat with support named tc Server that would be a good option if you don't need true Java EE.

羁〃客ぐ 2024-09-04 16:26:16

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

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

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

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

直到 JavaEE5,您只有这个“TimerService”用于执行定期任务,而 JMS 则用于执行异步任务,这非常困难。重量很重并且会变得非常烦人。

I actually recommend to go with GlassFish. Apart from your familiarity, it uses a NIO network infrastructure (Grizzly) which supports very high number of concurrent connections.

We primarily use JBoss, and I can tell you JBoss5 can support a pretty high number of connections, too (as far as I know, it also uses a NIO based connector).

There is also an EJB container called Resin, which is semi-opensource (basically they have open source version and proprietary version). People say it has excellent performance, but I haven't got the chance to investigate further.

My last point is, are you sure you want to go with JavaEE EJB container? We actually started off with JavaEE EJB container, but because of our performance requirement etc. we are now trying to migrate to Tomcat+Spring. EJB has restriction on threading model etc., which can become unwanted restriction if you have clients other than web browsers...

Until JavaEE5, you have only this "TimerService" for executing periodical tasks, and JMS for doing asynchronous stuff, which is very heavy weight and can become very annoying.

夜夜流光相皎洁 2024-09-04 16:26:16

如果您谈论的是完整的 Java EE,那么就是 Glassfish。

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

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

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

来自从事不同方面工作的人们(Metro、Grizzly、JAX-RS、NetBeans 等)的大量补充文档和文章确实有据可查,

NetBeans + Glassfish 是一种轻松的开箱即用体验。

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文