繁体   English   中英

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

[英]JBoss AS or Tomcat for Seam Application? And why?

我们即将部署使用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?

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

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

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

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

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

答案是 - '这取决于'。

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

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

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

Quartz支持集群以及Ehcache。

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

JBoss是一个应用程序服务器,而tomcat是一个servlet容器。 因为这个原因,我几乎认为你不应该对你现有的代码做出重大改变以适应Tomcat。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM