在JBoss上使用apache Mod_proxy_loadbalancer

我们使用4个后端JBoss的Apache mod_proxy_loadbalancer,这里是后端服务器的configuration:

<Proxy balancer://www> Allow from all BalancerMember x.11:8080/APP route=node11 timeout=600 ttl=7200 BalancerMember x.12:8080/APP route=node12 timeout=600 ttl=7200 BalancerMember x.12:8081/APP route=node122 timeout=600 ttl=7200 BalancerMember x.14:8080/APP route=node14 timeout=600 ttl=7200 ProxySet lbmethod=byrequests stickysession=JSESSIONID|jsessionid nofailover=On </Proxy> ProxyPass /APP balancer://www/ stickysession=JSESSIONID|jsessionid nofailover=On ProxyPassReverse /APP balancer://www/ 

我们的问题是请求不平衡,其中大部分去“node12”,这里是平衡器pipe理器的状态:

 LoadBalancer Status for balancer://www StickySession Timeout FailoverAttempts Method JSESSIONID|jsessionid 0 3 byrequests Worker URL Route RouteRedir Factor Set Status Elected To From x.11:8080/APP node11 1 0 Ok 6500 8.3M 33M x.12:8080/APP node12 1 0 Ok 5690 38M 8.2M x.12:8081/APP node122 1 0 Ok 6886 8.8M 35M x.14:8080/APP node14 1 0 Ok 6272 7.5M 35M 

这是否意味着当我们使用StickySessions时,负载平衡器不起作用? 我们如何确保每个服务器都有相同的请求?

顺便说一句:请将xreplace为192.168.1,因为serverfault不允许添加多个链接。 谢谢,

如果您基于请求进行负载平衡,但是基于sessionid持久化,则不会看到均匀分布的负载平衡器统计信息。 每个用户会话包含可变数量的请求(某些用户可能只在网站上运行了3或4个页面,有些可能运行了15个页面,某些用户configuration文件比其他用户configuration文件有更多的数据等)。

这就是说,看你的磅统计输出(并假设node12的值是颠倒),你的请求看起来相当平衡,考虑到持久性是积极的。