我们在调用GET请求获取数据的接口中,由于接口的处理逻辑复杂、查询的数据库表过多、nginx设置的超时时间过短和慢sql等原因,会造成接口请求了20秒左右,都没有结果返回,浏览器就会报错504 Gateway Time-out,报错如下:

遇到这个问题,可能会有两种情况,一种是网上常说的nginx访问超时时间。

设置Nginx超时时间

nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时,这种情况可以将nginx的超时时间调大。

但是这种情况不是最终理想的解决办法,接口请求时间超过20秒,那么接口的性能本身就不够合格,因此我们更需要从代码层面来改善我们的响应时间。

添加日志快速定位

接口响应超时,我们最急迫想知道的是接口的哪个模块出了问题,可以使用日志快速定位超时代码的位置,也就是在方法的不同模块,加上对应的日志输出,日志必须附带打印时间,然后将代码打包到生产环境。

在生产环境中请求接口,日志就会记录下来,我们根据方法中不同模块的执行时间,来判断哪个模块执行时间过长,然后就可以针对这个模块进行优化,比如查看是否存在慢sql、是否嵌套轮询和是否死循环等,找到问题后进行相应的优化。

接口访问超时 504 Gateway Time-out 优化方案相关推荐

  1. 怎么解决 接口请求 504 Gateway Time-out

    HTTP 504 Gateway Timeout 错误通常是由于网关或代理服务器无法在规定的时间内从上游服务器接收到响应而导致的.这可能是由于上游服务器过载或网络问题导致的. 要解决此问题,可以尝试以 ...

  2. 接口请求报错 504 Gateway Time-out

    文章主要介绍的是页面504 Gateway Time-out 的解决思路 一.504 Gateway Time-out 原因? 因为浏览器访问接口请求,默认超时事件是1分钟,当遇到504接口超时,首先 ...

  3. 孢子java_孢子框架-接口访问层、ESB、微服务API GateWay对比

    标签: 如果从百度去搜索"接口访问层"你会发现主要是.NET里面的技术,叫做IDAL,其实是数据访问层接口.它的主要作用是兼容多种数据库.比如你定义一个标准接口,然后实现改接口的S ...

  4. 生产事故总结篇(2) 接口响应超时优化方案

    1 查询类接口 一 mysql数据库查询超时问题 1 查询字段是否存在索引,索引是否失效 索引是个老生常谈的问题了, 需要特别注意下面几个点 唯一的值必须要建立唯一索引 比如订单号,售后单号,上门取件 ...

  5. HTTP/2 504 Gateway Timeout 36369ms

    Nginx报504 gateway timeout错误的解决方法 BUG背景信息: 线上正在运行的项目,某个服务一直出现超时访问,解决方案: 最终解决方案: 创建索引!!! 创建索引!!! 创建索引! ...

  6. Nginx报504 gateway timeout错误的解决方法

    提供给客户的bs软件,有一个导出报表的功能,经常性的报504错误 最近在工作中,需要做Excel导入的功能,由于Excel的数据比较多,而且我们的服务端程序需要对数据的内容做校验,会调用很多的外部服务 ...

  7. Resilience4j:请求1秒超时504,Response took longer than configured timeout

    案例 jar依赖 <!--resilience4j--><dependency><groupId>org.springframework.cloud</gro ...

  8. 实战总结!18种接口优化方案的总结

    前言 之前工作中,遇到一个504超时问题.原因是因为接口耗时过长,超过nginx配置的10秒.然后 真枪实弹搞了一次接口性能优化,最后接口从11.3s降为170ms.本文将跟小伙伴们分享接口优化的一些 ...

  9. java接口经常变动前端怎么办_Java进程故障排查(CPU资源占用高,接口响应超时,功能接口停滞等)...

    故障分析 # 导致系统不可用情况(频率较大): 1)代码中某个位置读取数据量较大,导致系统内存耗尽,进而出现Full GC次数过多,系统缓慢: 2)代码中有比较消耗CPU的操作,导致CPU过高,系统运 ...

最新文章

  1. Redis基本数据的的常见命令操作
  2. 使用net start mysql命令后出现“MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。”问题的解决办法
  3. php版本哪个没有面向对象,php面向对象的方法重载两种版本比较
  4. 客户端负载均衡及透明应用切换(TAF)tnsnames failover=on
  5. pbr发光 unity_PBR的基础理论
  6. Java事务管理之Hibernate
  7. 【计算机网络】IPv4 NAT
  8. List的【addAll(List list)】方法
  9. 【SQL练习题】1. 多列数据求最大值
  10. python与工程造价的联系_终于知道工程造价专业面试技巧
  11. Unity3D for iOS初级教程:Part 3/3
  12. 学计算机应用技术掉头发,为什么程序员更容易脱发呢?
  13. 【转】非教育网中IPv4网络访问IPv6资源
  14. No buffer space available 和windows 2003复制文件时:配额不足,无法处理该命令
  15. 地理坐标系:WGS84和BD09互转
  16. jetson用什么编译器_Jetson Nano安装 Jupyter lab
  17. MTK芯片平台,MT6737烧录工具资料(SP_Flash_Tool_exe_Windows_v5.1712.00.000)
  18. 佐藤ひろ美 - わたしのそらのいろ
  19. html手机下拉菜单样式,MUI下拉菜单样式
  20. oracle笔记:新手上路必备。花了两天时间整理出来的,详细的不能再详细了。

热门文章

  1. 文件和目录:access函数
  2. asp.net mvc源码分析-Action篇 Action的执行
  3. 在C++中禁止或允许权限
  4. Windows加域提示 已超出此域允许的创建的计算机账户的最大值,请联系统管理员
  5. 量化策略回测TRIXKDJ
  6. python笔记02_面向对象编程和面向对象高级编程
  7. vnpy学习_06回测结果可视化改进
  8. Python super钻石继承
  9. linux脚本编程延时函数,shell脚本编程之函数
  10. 备受青睐的在线报表工具有哪些?在线报表怎么做?