Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat应用程序服务器中的负载分布不均匀前端Apache httpd web服务器中的代理平衡_Apache_Tomcat - Fatal编程技术网

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

Tomcat应用程序服务器中的负载分布不均匀前端Apache httpd web服务器中的代理平衡,apache,tomcat,Apache,Tomcat,我使用的是6个ApacheHTTPD2.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=APP0

我使用的是6个ApacheHTTPD2.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>
##供所有虚拟主机使用的代理平衡器
平衡员ajp://APP01.abcd.com:8009 路由=APP01超时=120 ttl=600保持激活=On
平衡器成员ajp://APP02.abcd.com:8009路由=APP02超时=120 ttl=600 keepalive=On
BalancerMember ajp://APP03.abcd.com:8009路由=APP03超时=120 ttl=600保持激活=On
平衡器成员ajp://APP04.abcd.com:8009 route=APP04 timeout=120 ttl=600 keepalive=On
BalancerMember ajp://APP05.abcd.com:8009路由=APP05超时=120 ttl=600 keepalive=On
平衡器成员ajp://APP06.abcd.com:8009路由=APP06超时=120 ttl=600 keepalive=On
平衡器成员ajp://APP07.abcd.com:8009 route=APP07 timeout=120 ttl=600 keepalive=On
平衡器成员ajp://APP08.abcd.com:8009路由=APP08超时=120 ttl=600 keepalive=On
平衡器成员ajp://APP09.abcd.com:8009 route=APP09 timeout=120 ttl=600 keepalive=On
平衡器成员ajp://APP10.abcd.com:8009 route=APP10 timeout=120 ttl=600 keepalive=On
平衡器成员ajp://APP11.abcd.com:8009 route=APP11 timeout=120 ttl=600 keepalive=On
平衡器成员ajp://APP12.abcd.com:8009 route=APP12 timeout=120 ttl=600 keepalive=On
平衡器成员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
平衡器成员ajp://APP15.abcd.com:8009 route=APP15 timeout=120 ttl=600 keepalive=On
平衡器成员ajp://APP16.abcd.com:8009 route=APP16 timeout=120 ttl=600 keepalive=On
平衡器成员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
平衡器成员ajp://APP23.abcd.com:8009 route=APP23 timeout=120 ttl=600 keepalive=On
平衡器成员ajp://APP24.abcd.com:8009 route=APP24 timeout=120 ttl=600 keepalive=On
平衡员ajp://APP25.abcd.com:8009 路由=APP25超时=120 ttl=600保持激活=On
平衡器成员ajp://APP26.abcd.com:8009 route=APP26 timeout=120 ttl=600 keepalive=On
平衡器成员ajp://APP27.abcd.com:8009 route=APP27 timeout=120 ttl=600 keepalive=On
平衡器成员ajp://APP28.abcd.com:8009 route=APP28 timeout=120 ttl=600 keepalive=On
ProxySet stickysession=JSSessionID
当我从ApacheWebServer平衡器管理器检查它时,我面临着应用程序服务器之间负载分布不均匀的问题。事实上,前13个应用服务器(app01到app13,假设为batch1)的负载几乎相等,而其余的应用服务器(app14到app16和app21到app28,假设为batch2)的负载相等。batch1应用程序服务器的负载几乎是batch2应用程序服务器的3倍

我还试图诊断是否有任何网络问题可能是导致问题的原因。因此,尝试使用traceroute命令进行诊断,发现两台批处理服务器(batch1和batch2)的模式几乎相似,都有30个跃点

我搞不清楚,到底是什么问题?谁能帮帮我吗。
非常感谢您的帮助。

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

如果您没有使用bybusyness方法,那么只有在优雅地重新启动之后,负载才会平衡。基于中的描述
,请求或流量是基于历史值的,因此,如果您的应用程序服务器有一半暂时处于脱机状态,然后您启动它们,那么这些刚刚启动的服务器可能需要赶上流量,apache将在那里发送请求。另一方面,bybusyness算法正在查看工作人员当前有多忙,您应该尝试一下,看看是否需要优雅地重新启动

要么loadbalancer认为这两台服务器没有那么忙,要么它们真的很忙。他们使用更快的硬件还是不同的配置?您是否定义了可能导致更多连接指向同一服务器的粘性?但是在堆栈交换上可能有更好的地方来问这样的问题。硬件和配置是相同的。web服务器中没有定义粘性。只有stickysession能够捕获到一个特定请求的JSESSIONID,该请求发送到应用服务器。谢谢Marged。我尝试将LBM方法更改为“bytraffic”,然后重新加载服务器。重新加载后,每个应用服务器中的负载均匀分布。但经过一段时间后,负载变得不均匀,即第一批负载几乎达到80%,第二批负载剩余(20%)。默认情况下,lbmethod为“byrequests”时也会发生同样的情况。此外,我已经从代理平衡器中删除了APP21-APP28(Batch-2现在只包含APP14-APP16),但问题仍然存在。请任何人帮忙。重新启动web服务器很好地解决了这个问题。我相信在更改后重新加载web服务器(以避免任何停机)不会关闭所有连接并再次打开它。这可能是应用服务器之间负载平衡不均衡的原因。无论如何,谢谢:)@Marged