扩展Java EE应用程序的阶段

时间:2016-06-01 21:04:01

标签: java scalability server-side java-ee-7

我非常好奇专业程序员如何扩展Web应用程序。我已经做了大量的研究工作,但未能获得有关扩展阶段的信息,这可能与服务器性能取决于许多因素的事实有关。但是,我很确定一些细节可以大致规定。

例如,

1。)单个Tomcat服务器可以处理多少并发请求,具有良好的实现和体面的硬件?

2。)在什么时候应该是负载均衡服务器?

3。)完整的Java EE堆栈(JBoss / Glassfish)什么时候开始有意义?

1 个答案:

答案 0 :(得分:-1)

我觉得这有点基于意见,但最终,"它取决于"。

例如,Tomcat可以处理多少负载?这取决于。如果您为每个请求发送静态HTML页面,那么答案就是"很多"。如果您每次尝试计算前100,000个素数,那么可能不是那么多。

通常,最好尝试设计应用程序以进行群集/分布式使用。在会话中不要指望太多 - 保持会话同步可能会很昂贵。尽力使每种方法都真正无国籍。这有时很难,因为消费者(即网站)可能必须在每次调用时传递更多信息,以便任何群集机器知道请求的当前状态。等等。

当我想利用一些额外的Java EE功能 - 特别是JMS,CDI和JPA时,我将一个Web应用程序从Tomcat移动到Glassfish,然后移动了Wildfly。我本来可以使用TomEE并将其固定在一起但是统一的管理UI环境也是一个很好的好处。你可能永远不需要这样做。您可以非常轻松地将所需的部分(即CDI和JPA)添加到Tomcat。

请注意,我没有从Tomcat迁移到完整的EE服务器以获得性能 - 我想利用EE堆栈的更大部分。虽然Wildfly有一些管理接口可以让管理集群变得更容易,但我仍然可以毫无问题地使用Tomcat。

所以,再次,"它取决于"。如果您不需要更多的EE堆栈,那么Tomcat提供完整的EE服务器可能会有点过分。将一组Tomcat服务器置于Apache HTTPD负载均衡器(或Amazon one)之后,在一个也是集群的数据库之上,实现起来并不是太糟糕。如果这对你来说已经足够了,那我就坚持下去。不要为了表现而跳到Wildfly等等,因为你不会看到任何方向发生巨大变化。