2011-12-19 42 views
4

我们即将部署一个使用JBoss Seam构建的Java Web应用程序作为应用程序框架。我们将在集群设置中进行部署,因为这是一个电子商务应用程序,我们关心的是高可用性和高性能。我们已经完成了部署到JBoss 5.1的应用程序的所有开发和初始测试,但是最近我们已经对内存占用和性能等问题感到担忧,并且有争议转向Tomcat。JBoss AS或Tomcat for Seam应用程序?为什么?

我们的应用程序是一个电子商务应用程序,使用典型的多层应用程序,使用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?

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

+0

我同意Isolivera关于支持的回答。另外,看起来你现在正在使用很多Jboss的堆栈。如果你走Tomcat的路线,你甚至可能会抛弃Seam!如果您现在不需要支持,我会先尝试迁移到Jboss 7,因为它实际上要快得多,但需要对Jboss 5进行几项配置更改。另外,Jboss Enterprise(付费应用)6将基于jboss 7 – Luciano 2011-12-19 15:56:07

+0

我们目前没有任何计划来利用红帽商业支持。我们是一个非常小的创业公司,并计划自己管理和支持一切。在内存使用和性能方面,JBoss 5.1和7之间有明显的区别吗?平台的稳定性如何? – Shadowman 2011-12-19 16:20:38

回答

3

我不认为任何人都可以通过如此宽泛的系统定义给出明确的答案。

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

也就是说,选择其中一个或其他设置可能会要求您先性能测试您的应用程序,以发现您确实存在问题的位置(假设您已这么做)。毕竟,会话的大小是服务器的实现还是你在会话中存储了太多的信息?您是否在使用会话复制?你做AJAX吗?大多数情况下,性能改进来自实施 - >性能测试 - >实施周期,而不是来自不断变化的实施技术。嘿,即使Facebook使用MySQL,每个人都会立即认为它不适合(公开个人资料 - 其中600多万人)。

0

答案是 - '这取决于'。

你可以考虑做一个明智的决定在以下几个方面:

  • 无论你是想只使用标准API(Java EE)编写或依赖于实现特定的功能
  • 易于的配置和基础设施的维护

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

石英支持群集以及Ehcache做。

0

对于大多数JBoss的servlet容器的服务是由一个内部Tomcat容器管理,这是直到的JBoss 6.

JBoss是一个应用程序服务器,而Tomcat是一个servlet容器。出于这个原因,我几乎认为你应该对现有的代码进行大刀阔斧的改变以适应Tomcat。