对于轻量级应用,我们可以用Tomcat/OpenEJB替换Glassfish吗?与glassfish相比,OpenEJB作为EJB容器的性能如何。
OpenEJB代替glassfish的限制是什么?
问候
发布于 2010-07-26 15:21:56
我猜问题是关于运行时环境的,但我仍然不明白轻量级应用程序到底是什么意思。内存占用?启动时间?部署时间?你到底有什么问题?请给光下个定义。
无论如何,我认为GlassFish 3是一个轻量级的运行时,我对它的体验非常积极。从产品data sheet
JavaOracleJavaServer3实现了OSGi运行时,它允许根据需要将特性动态添加到
服务器,并部署尽可能小的GlassFish堆栈来支持应用程序。这有助于通过仅加载为已部署的应用程序提供服务所需的模块来保持尽可能小的占用空间,从而缩短启动时间并减少资源使用。
其次,我个人不喜欢科学怪人的方法,I believe that the glue between all parts that you get with a real application server is part of the added value,这就是我使用应用服务器的原因。
第三,我从来没有让OpenEJB做替补,我只把它用于测试,也从来没有打算把它用于生产,主要是因为它的名声不好。请看这篇关于Geronimo在TSS上的表现的comment (来自Hani Suleiman,如果它是刻薄的,请不要惊讶):
我想说EJB层是“可接受的”是你能说的最好的话了。
据我所知,geronimo的ejb代码基于openEJB,从历史上看,它是您所能找到的最糟糕的容器。你也很难找到它,但一旦你实现了那个可疑的目标,你就会充满不同程度的遗憾/愤怒。
G的表现总是低于平均水平也就不足为奇了。软件构建的科学怪人方法是一个很好的性能不佳的配方。当然,你会有很多漂亮的图表、漂亮的依赖图和松散耦合。所有这些对于那些想要一个连贯的应用服务器的用户来说都是相当无关紧要的,他们可以将其视为一个黑盒。
事情可能已经改变了,OpenEJB可能有所改善,至少有一点,但仍然:
由于所有这些原因,我不会考虑用Tomcat+OpenEJB代替GlassFish,特别是在没有问题需要解决的情况下。
相关问题
另请参阅
发布于 2010-07-27 04:15:33
注意,Hani的评论是关于Geronimo 1.0/OpenEJB 2.0的。Hani在frankenstein的评论中是错误的,因为Geronimo2.x代码库是完全从头开始为OpenEJB构建的,因此它只在Geronimo中运行;嵌入式、tomcat和独立模式都丢失了。我们发现Hani的评论是对的,因为表现不好。
对于EJB3.x,我们放弃了2.x代码库,并从OpenEJB 1.x中停止的地方重新开始,并将其提升到EJB3.0认证。2.x和3.x不共享代码。OpenEJB 3.x结果非常好,自2008年第一个3.0版本发布以来,该项目一直在快速增长。EJB3.1嵌入式容器和.wars中的EJB特性来自OpenEJB。我们有了第一个@Singleton实现,并希望在今年完成EJB3.1的其余部分,并通过Q4认证web profile。故障转移和JMX监控自1月份以来一直在进行大量的开发,现在已经完成,并将在几周后发布3.1.3。故障转移实际上是第二代,第一个故障转移支持是在3.1.1中发布的。在3.1.1版本中也做了大量的远程性能工作,在我们的基准测试中,将RPC调用的平均值提高到了7300TPS。
对一些人来说不太重要,但对另一些人来说非常重要,Apache OpenEJB不是一个公司控制的开源项目。大多数提交者都是在工作中赢得、提交和使用OpenEJB的用户。这有它的优点和缺点,但底线是OpenEJB充满了热爱它和使用它的人,社区就像源代码一样开放。
更新
2011年10月,我们通过现在称为Apache TomEE的"Tomcat+OpenEJB“获得了JavaEE6Web Profile认证。
经过认证并具有更清晰的名称,我们希望这会使堆栈更容易理解和比较。
在个人笔记中,我将此帖子中的评论视为采取认证步骤的主要动机之一。感谢StackOverlfow的每一个人的反馈,我发现这些反馈既鼓舞人心,又有根据。与这个社区的联系给OpenEJB/TomEE带来了许多积极的变化。
发布于 2010-07-27 16:22:32
在我的简短测试中,我发现glassfish不够轻,无法满足我的需求(启动时间和内存使用量)。到目前为止,我对openejb很满意。
https://stackoverflow.com/questions/3332276
复制相似问题