用于Seam应用程序的JBoss AS或Tomcat?为什么?

时间:2011-12-19 02:00:39

标签: java performance tomcat jboss seam

我们即将部署使用JBoss Seam构建的Java Web应用程序作为应用程序框架。我们将在集群设置中进行部署,因为这是一个电子商务应用程序,我们关注高可用性和性能。我们已经完成了部署到JBoss 5.1的应用程序的所有开发和初始测试,但是我们最近开始关注内存占用和性能等问题,并且已经讨论过迁移到Tomcat。

我们的应用程序是一个电子商务应用程序,使用典型的多层应用程序,使用JSF进行视图,使用EJB3进行业务层,使用JPA / Hibernate进行PostgreSQL数据库的持久化。我们还大量利用JBoss Cache 2.x进行缓存支持,并利用Hibernate Search(Lucene)进行搜索支持。

我很想听听社区对哪个应用服务器最适合基于Seam的应用程序的看法。我意识到我们必须对我们的应用程序架构(没有EJB,计时器服务 - > Quartz调度程序,JBoss Cache-> ehCache等)进行一些更改以支持迁移。我们很乐意做出这些改变,前提是它们与JBoss的结果相当。

使用JBoss,似乎集群设置更容易。我们能用Quartz进行集群设置吗?的Ehcache?正如我所提到的,我们目前正在部署JBoss 5.1。 JBoss 7会给我们带来更好的性能和更小的内存占用吗?如果我们选择Tomcat,我们倾向于Tomcat 7.是否有任何令人信服的理由选择使用Tomcat 6.x?

我很想听听您对此类设置的看法和经验。我们已经阅读了文档。我们已经对所有各种平台进行了一些概念验证测试。但是,很难知道我们应该在生产中运行什么,并且不想做出错误的选择,然后需要重新设计并再次测试所有内容,因为我们做出了错误的选择。感谢您提供的任何意见和建议!

3 个答案:

答案 0 :(得分:3)

我认为任何人都不能用如此广泛的系统定义给出明确的答案。

我目前在类似的设置中使用Seam / JBoss 5(oracle而不是postgres)主要是由于一个原因:支持。在紧密集成的JBoss和Seam世界中拥有RedHat专业服务支持本身就是你不应该忽视的东西。特别是在生产环境中。即使您现在没有,它也让您感到舒适,知道您将来可以这样做(如果需要)。

也就是说,选择一个或另一个设置可能需要先对您的应用程序进行性能测试,以便发现您确实遇到问题的位置(假设您这样做)。毕竟,是服务器实现的会话大小还是在会话中存储了太多信息?您是否正在使用会话复制?你做AJAX吗?

大多数情况下,性能改进来自实施 - >性能测试 - >实施周期而不是改变实施技术。嘿,即使Facebook使用MySQL,每个人都会立即认为它不适合(公开的个人资料 - 其中有6亿多个)。

答案 1 :(得分:0)

答案是 - '这取决于'。

您可以考虑以下几个方面做出明智的决定:

  • 是否要仅使用标准API (Java EE)进行编码,还是依赖于特定于实现的功能
  • 轻松实现基础架构的配置维护

根据我的个人经验 - 我们在JBoss上部署复杂的应用程序,在Tomcat / Jetty上部署简单的应用程序。

Quartz支持群集以及Ehcache。

答案 2 :(得分:0)

对于大多数JBoss的servlet容器服务由内部tomcat容器管理,这直到JBoss 6。

JBoss是一个应用服务器,而tomcat是一个servlet容器。由于这个原因,我几乎认为你不应该对你现有的代码进行大幅改动以适应Tomcat。