我们即将部署使用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亿个).