如何将Apache Tomcat和Glassfish作为生产服务器进行比较?

问题描述:

我有一个基于J2EE的系统,当前正在Apache Tomcat上运行。我们正在讨论将我们的生产服务器迁移到Glassfish服务器。如何将Apache Tomcat和Glassfish作为生产服务器进行比较?

有人可以与他们任何一个分享他们的经验吗?

这是quite an old comparison。因此,每台服务器的功能无疑有所改善。

编辑:这是a current comparison.

两者都是比用于生产环境不够稳定,虽然多。这真的要归功于功能。

+5

你“当前比较”现在也过时了。 [新页面](http://wikis.sun.com/display/glassfish/GlassFishVsTomcat)[更新](http://www.oracle.com/us/products/middleware/application-server/glassfish- for-tomcat-users-wp-073699.pdf)(警告,PDF链接)。 – 2010-11-08 19:43:24

他们没有真正的可比性。

Apache Tomcat不是J2EE服务器。它只是一个Web应用程序的Servlet容器。而已。如果您需要J2EE API实现,则必须从别处获取这些实现。例如,通过使用使用Tomcat作为其容器的Apache Geronimo服务器,或者使用Glassfish的JAR文件。

Glassfish是一个完整的Java应用服务器,具有API,如JPA,EJB等的实现。 Glassfish包含一个最初由Tomcat使用的Servlet引擎,但他们改进了它(不知道究竟是什么)。最近的glassfish服务器使用另一个使用grizzly的容器,该容器使用NIO API进行输入/输出并且可以很好地扩展。据我所知,Glassfish Servlet Engine是更高性能的。在这里,我找到了一个不错的基准(这是一个有点老虽然):

http://weblogs.java.net/blog/sdo/archive/2007/05/how_to_test_con.html

+1

如果您希望Tomcat具有完整的J2EE堆栈,我认为您只需使用Apache Geronimo。 – Powerlord 2008-11-29 18:36:23

大问题是:为什么?你认为你需要Glassfish将通过Tomcat或Jetty提供给你什么?管理实用程序也许?

你想要超越基本的servlet容器的东西很容易插拔。

因此,虽然Glassfish现在状况良好,但“仅仅因为”移动没有意义。我建立的大多数生产服务都是在普通的旧servlet容器上,没有使用特定于实现的功能。

这可能有点过时,甚至有点偏见,但它来自Oracle。您可以向下跳到节玻璃鱼比较的汤姆猫

http://java.sun.com/developer/technicalArticles/glassfish/GFandMySQL_Part1.html