我已经使用负载均衡器(Apache)和运行Jboss 4.2.2的三个应用程序节点配置了粘性会话。 负载均衡器使用mod_jk和设置,如本教程中所述。
http://community.jboss.org/wiki/UsingModjk12WithJBoss;jsessionid=1569CBFB7C3096C59C977CD3F7159A32
我将jumRoute设置为三个节点的node1,node2和node3,并将负载均衡器的workerlist属性设置为 节点1,节点2,节点3
本教程一直跟着到最后一点,但我没有配置useJK参数。值仍然设置为false。 粘性会话暂停,但我似乎松开会话并在我的mod_jk日志文件
中得到此错误[error] ajp_get_reply :: jk_ajp_common.c(1926):( node1)从tomcat等待回复的超时。 Tomcat已关闭,停止或网络问题(错误= 110)
我亲自检查了登录node1的用户,然后移动到了node2。
当Apache无法从node1获得回复时,Apache会重定向到另一个节点吗?在这种情况下,useJk如何提供帮助。
---编辑01 ---
----编辑02 ----
---- edit03 ----- http://community.jboss.org/wiki/OptimalModjk12Configuration
使用上面的文章我只是想知道Apache的最佳值 MaxClients的 ThreadPerChild
答案 0 :(得分:1)
我发现this article中的以下注释很有趣。我没有试过这个,但也许对遇到同样问题的人有用。
如果您正在使用mod_jk并且已启用粘性会话,但您的会话未能成功,则可能无法设置域,或者您未能设置jvmRoute,或者您使用的是非标准cookie用来实现粘性的名称!
答案 1 :(得分:0)
我认为在您的worker.properties文件中,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>
在deploy / jboss-web.deployer / META-INF / jboss-service.xml