zoukankan      html  css  js  c++  java
  • 前端报504错误如何定位

    欢迎关注【无量测试之道】公众号,回复【领取资源】,
    Python编程学习资源干货、
    Python+Appium框架APP的UI自动化、
    Python+Selenium框架Web的UI自动化、
    Python+Unittest框架API自动化、

    资源和代码 免费送啦~
    文章下方有公众号二维码,可直接微信扫一扫关注即可。

    测试环境 membership 模块超时60s 问题定位步骤如下:step1:   前端 debug 时查看到了504的响应-----(发现问题)
    问题分析
    nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行60秒,而nginx最大响应等待时间为30秒,这样就会出现超时。

    step2:查看nginx log
    ==> access.log <==
    10.7.0.13 - - [15/May/2020:16:42:19 +0800] 10.7.00.13:9301 60.001 60.001 ars-beta.test_webcn-la.com POST /api/gc/membership/tier/getMembershipTierByTest
    HTTP/1.1 "504" 705 "-" "-" "Apache-HttpClient/4.5.3 (Java/1.8.0_144)"
    可以看到nginx也是504的状态,于是可以查看后端对应的服务是10.7.00.13:9301
    可以使用curl 来验证一下服务是否正常:curl -I http://localhost:9301/test.html

    step3:查看9301端口状态:

     wc -l 查看后大概有117个左右的连接,平时只有以下这样的情况

    step4:结合业务查看membership.controller 的access.log(本日志记录了所有与本服务交互的请求处理), 查看调用请求的整个过程,有两个惊人发现:第一个是红框里面的ip, 第二个是红框里面的当前请求线程名称

    step5:  第一个红框的的ip 居然是我自己的ip, 这下子问题定位了,因为我本地有在请求membership 服务,并且是python开发的监控服务是否正常的应用所发出的请求。

    step6:  结论为:因为我本机在每五分钟(从上面的请求日志间隔可以窥探到)请求一次membership 服务的接口,用于保障beta环境的可用性验证,最终因为请求的membership 服务连接一直不能释放导致了membership 服务僵死掉。
     查看9301端口状态时,存在这两个状态,说明如下:

    step7:  解决方案:重新重启了服务就恢复了,不过还发现了mq 地址变更但代码配置里面未变更的问题并让开发修复,算是意外的收获。

    备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

     添加关注,一起共同成长吧。

  • 相关阅读:
    Spring自动装配Bean
    Spring中Bean的作用域和生命周期
    Spring实例化Bean的三种方法
    Spring AOP详解
    Mybatis=====注解
    GBK和UTF-8文字编码的区别
    This Android SDK requires Android Developer Toolkit version 23.0.0 or above.
    问题:Unable to find a 'userdata.img' file for ABI armeabi to copy into the AVD folder.
    Ubuntu 系统下可以做什么?
    C语言结构体数组内带字符数组初始化和赋值
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/12956284.html
Copyright © 2011-2022 走看看