我使用6个Apache 2.2.15将请求转发到Tomcat应用服务器(版本: 7.0.41)。使用mod_proxy,所有的应用服务器都与代理平衡器相平衡。下面是apache httpd.conf的类似配置:
##Proxy Balancers for use by all Virtual Hosts
<Proxy balancer://FrontEnd>
BalancerMember ajp://APP01.abcd.com:8009 route=APP01 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP02.abcd.com:8009 route=APP02 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP03.abcd.com:8009 route=APP03 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP04.abcd.com:8009 route=APP04 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP05.abcd.com:8009 route=APP05 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP06.abcd.com:8009 route=APP06 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP07.abcd.com:8009 route=APP07 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP08.abcd.com:8009 route=APP08 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP09.abcd.com:8009 route=APP09 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP10.abcd.com:8009 route=APP10 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP11.abcd.com:8009 route=APP11 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP12.abcd.com:8009 route=APP12 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP13.abcd.com:8009 route=APP13 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP14.abcd.com:8009 route=APP14 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP15.abcd.com:8009 route=APP15 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP16.abcd.com:8009 route=APP16 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP21.abcd.com:8009 route=APP21 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP22.abcd.com:8009 route=APP22 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP23.abcd.com:8009 route=APP23 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP24.abcd.com:8009 route=APP24 timeout=120 ttl=600 keepalive=On
BalancerMember ajp://APP25.abcd.com:8009 route=APP25 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP26.abcd.com:8009 route=APP26 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP27.abcd.com:8009 route=APP27 timeout=120 ttl=600 keepalive=On
BalancerMember ajp:// APP28.abcd.com:8009 route=APP28 timeout=120 ttl=600 keepalive=On
ProxySet stickysession=JSESSIONID
</Proxy>当我从Apache平衡器-管理器中检查时,我面临着应用服务器之间负载分布不均的问题。事实上,排名前13位的应用服务器(app01到app13,假设batch1)的负载几乎相等,其余的应用服务器(app14 to app16,app21 to app28,假设batch2)负载相等。batch1应用服务器的负载几乎是batch2应用服务器的3倍。
我还试图诊断是否有任何网络问题可能是造成问题的原因。因此,尝试使用traceroute命令进行诊断,并为批处理服务器(batch1和batch2)找到了几乎相同的30跳模式。
我搞不懂,有什么问题吗?有人能帮帮我吗。任何帮助,真的很感激。
发布于 2016-06-07 11:05:14
重新启动web服务器,优雅地解决了这个问题。在更改没有关闭所有连接之后重新加载web服务器(以避免任何停机),并在启动时再次打开它。这将创建一个连接。我认为这可能是应用服务器之间负载平衡不平衡的原因。无论如何,谢谢:)
发布于 2017-05-17 15:11:15
如果您没有使用bybusyness方法,那么只有在优雅地重新启动之后,负载才是均匀的。根据balancer.html中的描述,请求或流量是基于历史值的,因此如果有一半的应用程序服务器离线一段时间,那么请求或流量可能是不均衡的,然后将其提起,那些刚刚出现的服务器可能需要赶上流量,而apache会在那里发送请求。另一方面,通过忙碌算法查看当前工人的忙碌程度,您应该尝试这样做,看看是否需要优雅地重新启动。
https://stackoverflow.com/questions/34418366
复制相似问题