首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat应用服务器中负载分布不均前端Apache httpd web服务器中的代理均衡

Tomcat应用服务器中负载分布不均前端Apache httpd web服务器中的代理均衡
EN

Stack Overflow用户
提问于 2015-12-22 14:42:17
回答 2查看 712关注 0票数 0

我使用6个Apache 2.2.15将请求转发到Tomcat应用服务器(版本: 7.0.41)。使用mod_proxy,所有的应用服务器都与代理平衡器相平衡。下面是apache httpd.conf的类似配置:

代码语言:javascript
复制
##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跳模式。

我搞不懂,有什么问题吗?有人能帮帮我吗。任何帮助,真的很感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-07 11:05:14

重新启动web服务器,优雅地解决了这个问题。在更改没有关闭所有连接之后重新加载web服务器(以避免任何停机),并在启动时再次打开它。这将创建一个连接。我认为这可能是应用服务器之间负载平衡不平衡的原因。无论如何,谢谢:)

票数 0
EN

Stack Overflow用户

发布于 2017-05-17 15:11:15

如果您没有使用bybusyness方法,那么只有在优雅地重新启动之后,负载才是均匀的。根据balancer.html中的描述,请求或流量是基于历史值的,因此如果有一半的应用程序服务器离线一段时间,那么请求或流量可能是不均衡的,然后将其提起,那些刚刚出现的服务器可能需要赶上流量,而apache会在那里发送请求。另一方面,通过忙碌算法查看当前工人的忙碌程度,您应该尝试这样做,看看是否需要优雅地重新启动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34418366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档