何时开始集群Java EE服务器

时间:2012-07-18 19:44:41

标签: java-ee load-balancing jboss7.x

我正在使用Java EE 6,EJB 3.1,CDI,JSF 2和Hibernate在JBoss 7.1.1上运行应用程序。

我如何知道Java EE AS的一个独立实例是否足以处理所有请求或者是否需要AS的多个实例?

JBoss 7.1.1能够处理每秒多少个请求(在一般情况下)?

一年中有一次请求数量显着增加,服务器(当时是JBoss 4.2.3)失败了。而且我无法说明是由于应用程序设计不佳还是仅仅是由于大量请求。

2 个答案:

答案 0 :(得分:0)

没有简单的常数(42不是所有人的答案)。它取决于很多因素。请求与数据库的连接。在后台进行处理。

你应该阅读负荷压力测试(http://en.wikipedia.org/wiki/Load_testing)。 您可以使用JMeter(http://jmeter.apache.org/)或其他工具创建负载测试,并模拟查看时间和平均时间。 尽可能模拟您的请求,类似于生产请求。

答案 1 :(得分:0)

尝试找出是否有任何特定的请求主要在一年中的那个时间执行。

然后,您可以在jboss实例中附加 jvisualvm 的同时,针对特定请求(每秒模拟应用程序的多个请求)运行一些 jmeter 测试。

您可以尝试使用许多不同的jvm内存设置进行这些测试(例如 -Xmx512m -XX:MaxPermSize = 512m ),如果可能的话,使用不同数量的处理器(如果您使用的是虚拟环境,则更容易) )

假设您的应用程序可以同时处理大量请求, standalone-ha.xml urn:jboss:domain:web:1.1 子系统中有一个设置 通过它可以增加jboss可以处理的最大并发连接数:

<connector name="http" protocol="HTTP/1.1" max-connections="10000" scheme="http" socket-binding="http"/>

urn:jboss:domain:datasources:1.0 部分中查找数据源的最佳max-pool-size / blocking-timeout-millis值也可能会阻止jboss在请求增加时失败。

结合从上述测试中获得的结果,您可以决定在单独的节点中运行额外的jboss实例。