我有两个jboss应用服务器(在不同的机器和IP地址上),我使用mod_jk配置为此应用服务器设置了apache作为Web服务器。 Apache Web服务器也设置为在这两个应用程序服务器之间进行负载平衡。
以下是我的workers.properties文件的内容:
worker.list=portalworker1,portalworker2,portalbalancer
worker.portalbalancer.type=lb
worker.portalbalancer.balance_workers=portalworker1,portalworker2
worker.portalbalancer.sticky_session=True
# Application server 1 Portal application
worker.portalworker1.type=ajp13
worker.portalworker1.host=10.178.197.91
worker.portalworker1.port=8009
worker.portalworker1.lbfactor=1
# Application server 2 Portal application
worker.portalworker2.type=ajp13
worker.portalworker2.host=10.178.197.90
worker.portalworker2.port=8009
worker.portalworker2.lbfactor=1
问题是当前请求被发送到任何应用服务器(例如,应用服务器1的一个请求和应用服务器2的第二个请求),这将是obv。不行。
我还在调试模式下检查了mod_jk日志:
第一次请求
[Tue Dec 13 16:46:12.222 2011] [16097:47166030803776] [debug] get_most_suitable_worker::jk_lb_worker.c (946): searching worker for partial sessionid UH76jWj-q2yX39prlS-nBA**
[Tue Dec 13 16:46:12.222 2011] [16097:47166030803776] [debug] get_most_suitable_worker::jk_lb_worker.c (1001): found best worker portalworker2 (portalworker2) using method 'Request'
第二次请求:
[Tue Dec 13 16:46:12.434 2011] [16100:47166030803776] [debug] get_most_suitable_worker::jk_lb_worker.c (946): searching worker for partial sessionid UH76jWj-q2yX39prlS-nBA**
[Tue Dec 13 16:46:12.434 2011] [16100:47166030803776] [debug] get_most_suitable_worker::jk_lb_worker.c (1001): found best worker portalworker1 (portalworker1) using method 'Request'
这也确保了2个requset的sessionid是相同的,找到了不同的工人。
知道我做错了吗?
答案 0 :(得分:0)
问题是我没有在我的server.xml中为我的不同应用程序服务器添加jvmRoute来区分这些服务器,并且在jboss-service.xml文件中useJK未设置为true。