【问题标题】:JavaEE Application Server or Lightweight Container?JavaEE 应用服务器还是轻量级容器?
【发布时间】:2011-02-14 16:01:37
【问题描述】:
让我先说这不是我的实际情况,但我问这个问题更多是为了我自己的知识并在这里获得其他人的意见。
我使用过 Spring 和 EJB3/JBoss,对于我构建的较小类型的应用程序,Spring(需要时 +Tomcat)的使用要简单得多。但是,当扩展到需要诸如负载平衡和集群之类的大型应用程序时,Spring 仍然是一个可行的解决方案吗?或者,当您开始变得足够大以至于需要它时,是时候转向像 EJB3/JBoss 这样的解决方案了吗?我不确定我是否已经很好地确定了问题的范围以获得好的答案,所以请告诉我。
谢谢,
杰夫
【问题讨论】:
标签:
java
spring
architecture
scalability
application-server
【解决方案1】:
Tomcat can be clustered。
负载平衡通常是独立于应用服务器的硬件解决方案(例如 BigIP 或 Cisco ACE)。
Spring 可以是企业级的,就像 EJB 一样。没有分界线说 Spring 无法处理。
【解决方案2】:
我可以说,在我们相当大的项目(~500K LOC)中,出于性能考虑,我们已经摆脱了 JBoss 以支持 Spring/Tomcat。
J2EE 应用程序容器(以及作为实现的 JBoss)的一个关键特性是可以在不同类型的事务资源之间进行透明的分布式事务。这是个好主意,它大大简化了 JMS 消息传递和数据库操作的协调。但是,当涉及到高强度的必要性时,它就成了一个问题。不幸的是,分布式事务以其速度慢而著称。
从 JBoss 迁移到 Spring 并不是一件容易的事,但是它是可能的,并且 Spring/Tomcat 可以考虑作为 JBoss 的全功能替代品,除了极少数例外。