2010-09-14 37 views
0

我配置了一个使用负载平衡器(Apache)设置的粘性会话和三个运行Jboss 4.2.2的应用程序节点。 负载均衡器使用本教程中提到的mod_jk和设置。Apache Sticky会话

http://community.jboss.org/wiki/UsingModjk12WithJBoss;jsessionid=1569CBFB7C3096C59C977CD3F7159A32

我已在jumRoute设置为节点1,2,3两个节点的三个节点和我的负载平衡器workerlist属性设置为 节点1,节点2,节点3

本教程一直跟着,直到最后一点,但我没有配置useJK参数,该值仍然设置为false。 粘性会话都持有了,但我似乎失去会话,并在我的mod_jk日志文件中得到这个错误

[错误] ajp_get_reply :: jk_ajp_common.c(1926年):以从Tomcat等待回复(节点)超时。 Tomcat已关闭,已停止或出现网络问题(errno = 110)

我亲自检查了在node1上登录的用户,然后移至了node2。

当Apache无法从node1获得回复时,Apache是​​否重定向到另一个节点?useJk在这种情况下如何提供帮助。

---编辑--- 01

  1. 我的UseJK值更改为true,但仍然很少有用户仍遇到突然登出我知道由于在迎合用户请求的服务器节点来改变。
  2. 我也想知道这些节点上的流量是否有粘性会话的任何影响,以及如何应对。

(我几天的所有服务器上出现高负荷)----编辑02 ----

  1. 我也想知道关于控制每个工人的连接数量。
  2. 控制ajp连接器/连接的数量。
  3. apache负载平衡器的连接数量与JBoss工作器节点中的ajp连接数量之间的关系。
  4. 什么是Apache 2.2.3和带有Tomcat 5.5连接器的JBoss 4.2.2工作节点之间的最佳配置。

----使用上述文章中,我只是想知道的Apache 的MaxClients 的最佳值edit03 ----- http://community.jboss.org/wiki/OptimalModjk12Configuration

ThreadPerChild

回答

0

我想在你的工人。属性文件workerlist应该有loadBalancer worker而不是node1,node2 & node3.It应该是这样的

worker.list=loadmanager 
worker.loadmanager.balance_workers=node1,node2,node3 

我希望你必须有这些正确的。

此外,您必须将UserJK arttribute设置为true,才能将粘性会话与JvmRoute结合使用进行负载平衡。如果设置为true,则会插入JvmRouteFilter 以截获每个请求,并在检测到故障转移时替换JvmRoute。

<attribute name="UseJK">true</attribute> 
在部署/的jboss-web.deployer/META-INF /的jboss-service.xml的

+0

这正是我所配置的。我将UserJK值更改为true。但粘性会话仍然不适用于少数用户。节点上的负载是否会影响粘性会话? – frictionlesspulley 2010-09-15 13:45:48

+0

来验证影响粘性会话的节点上的负载...您可以使用负载平衡方法来玩。您可以在这里找到那些不同的方法http://tomcat.apache.org/connectors-doc/reference/workers.html – PushkarT 2010-09-16 04:53:30

+0

发现服务器更经常地是工作者节点可以处理分配的流量,这导致了溢出,并且因此粘性会话未被绑定到它们的始发工作者节点 – frictionlesspulley 2010-12-27 21:27:05

1

我发现下面的音符this article有趣。我没有尝试过,但对于遇到同样问题的人可能会有用。

如果您正在使用的mod_jk并且已经打开了粘性会话,但您的会话都无法遵守,你可能没有设置域名,或者你没有设置的jvmRoute,或者你使用的是非标准cookie名称来实现粘性!