由于/zkcomet请求超时,后台抛出500

2020-09-27 08:22发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们有一个集群环境,其中运行了2个hybris实例。 Apache正在使用MOD AJP连接器对2个tomcat hybris服务器进行负载平衡。

我们已在基于JSESSIONID的Apache上启用了会话粘性。

我们有一个有趣的观察,当我们通过以下路线访问后台时:

负载平衡器>清漆> APACHE> HYBRIS

一段时间后,当我们继续在任意点击后继续浏览后台时,由于该会话现在已转移到另一台服务器,因此我进入登录页面。

在Apache错误日志中,我们可以看到以下内容:

  [2017年7月19日星期三16:32:25.898151] [proxy_ajp:error] [pid 38976:tid 140482065696512] [client 10.129.80.151:63250] AH00992:ajp_read_header:ajp_ilink_receive失败,引荐来源:https:// uat-grocery.ril.com/backoffice/
  [2017年7月19日星期三16:32:25.898177] [proxy_ajp:error] [pid 38976:tid 140482065696512](70007)指定的超时已过期:[客户端10.129.80.151:63250] AH00878:读取响应失败,来自10.129.80.152:  8009(10.129.80.152),引荐来源:https://uat-grocery.ril.com/backoffice/
  [2017年7月19日星期三16:32:46.898248] [proxy_ajp:error] [pid 38868:tid 140482076186368] [client 10.129.80.151:63292] AH00992:ajp_read_header:ajp_ilink_receive失败,引荐来源:https://uat-grocery.ril。  com/backoffice/
  [2017年7月19日星期三16:32:46.898275] [proxy_ajp:error] [pid 38868:tid 140482076186368](70007)指定的超时已到期:[客户端10.129.80.151:63292] AH00878:读取响应失败,来自10.129.80.152:  8009(10.129.80.152),引荐来源:https://uat-grocery.ril.com/backoffice/
 
  

正在超时的请求是OOTB混合的JS/CSS,未被我们触摸。 由于请求超时,Tomcat发送了503响应,因此Apache认为服务器已关闭,因此将请求切换到另一个实例。

问题是-为什么后台请求要花时间,并且可能会耗尽tomcat上的线程。 我们的tomcat线程默认配置为每台服务器200。

在这方面的任何帮助都将不胜感激。 索拉比

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们有一个集群环境,其中运行了2个hybris实例。 Apache正在使用MOD AJP连接器对2个tomcat hybris服务器进行负载平衡。

我们已在基于JSESSIONID的Apache上启用了会话粘性。

我们有一个有趣的观察,当我们通过以下路线访问后台时:

负载平衡器>清漆> APACHE> HYBRIS

一段时间后,当我们继续在任意点击后继续浏览后台时,由于该会话现在已转移到另一台服务器,因此我进入登录页面。

在Apache错误日志中,我们可以看到以下内容:

  [2017年7月19日星期三16:32:25.898151] [proxy_ajp:error] [pid 38976:tid 140482065696512] [client 10.129.80.151:63250] AH00992:ajp_read_header:ajp_ilink_receive失败,引荐来源:https:// uat-grocery.ril.com/backoffice/
  [2017年7月19日星期三16:32:25.898177] [proxy_ajp:error] [pid 38976:tid 140482065696512](70007)指定的超时已过期:[客户端10.129.80.151:63250] AH00878:读取响应失败,来自10.129.80.152:  8009(10.129.80.152),引荐来源:https://uat-grocery.ril.com/backoffice/
  [2017年7月19日星期三16:32:46.898248] [proxy_ajp:error] [pid 38868:tid 140482076186368] [client 10.129.80.151:63292] AH00992:ajp_read_header:ajp_ilink_receive失败,引荐来源:https://uat-grocery.ril。  com/backoffice/
  [2017年7月19日星期三16:32:46.898275] [proxy_ajp:error] [pid 38868:tid 140482076186368](70007)指定的超时已到期:[客户端10.129.80.151:63292] AH00878:读取响应失败,来自10.129.80.152:  8009(10.129.80.152),引荐来源:https://uat-grocery.ril.com/backoffice/
 
  

正在超时的请求是OOTB混合的JS/CSS,未被我们触摸。 由于请求超时,Tomcat发送了503响应,因此Apache认为服务器已关闭,因此将请求切换到另一个实例。

问题是-为什么后台请求要花时间,并且可能会耗尽tomcat上的线程。 我们的tomcat线程默认配置为每台服务器200。

在这方面的任何帮助都将不胜感激。 索拉比

付费偷看设置
发送
4条回答
宇峰
1楼-- · 2020-09-27 09:05

Saurabh,你好

对于专家论坛来说,此主题似乎太大了。 由于那里的配置非常复杂,因此需要使用负载平衡器和缓存进行更深入的分析。 请创建支持通知单,我们的支持团队将能够为您更好地解决问题。

干杯,
马辛

huskylover
2楼-- · 2020-09-27 09:02

嗨-我尝试使用AJP NIO连接器。 尽管它肯定会延迟该问题,但由于此问题在群集环境中,注销仍在发生。

我在tomcat的访问日志中打印了请求的响应时间,发现一些彗星请求要花费数小时,并且肯定必须超时并注销用户。 其中一些示例是:`代码时间(秒)/rilgroceryproductcockpit/zkau/comet?dtid = gs9v HTTP/1.1 200 5464.293/rilgroceryproductcockpit/zkau/comet?dtid = geb81 HTTP/1.1 200 5337.302`

如何修复彗星请求需要花费大量时间。

小c菟菟
3楼-- · 2020-09-27 08:57

嗨marcin,

设置仅供参考。 问题不在于复杂的设置。 问题说明如下:

从Apache Web服务器到tomcat服务器,正在使用mod proxy ajp进行通信。 有些后台请求需要60秒钟以上的时间,因此超时将导致会话切换到另一台服务器时注销。 因此,问题在于,为什么后勤办公室的请求要花时间,我们如何优化它。 我们可能需要花一些时间才能看到的一些请求是:

  414730-10.129.80.151--[19/Jul/2017:17:25:35 +0530]" GET/backoffice/cng/scripts/jquery.jsPlumb-1.3.16-all-modified.js  HTTP/1.1" 200 414730" https://uat-grocery.ril.com/backoffice/"" Mozilla/5.0(Windows NT 6.1; Win64; x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/59.0.3071.115 Safari /537.36"

  
大道至简
4楼-- · 2020-09-27 09:01

您好,这可能无关。 但是,您是否检查过Apache是​​否没有比Tomcat工作线程更多的工作线程? 如果是这样,这可能会导致其他工作程序无法连接到tomcat,这可能会将后端标记为Down。

亲切的问候,费尔南多

一周热门 更多>