首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

API请求问题排查记录「1」

前言记录一次线上出现的API请求偶现严重请求的问题解决过程需要了解的词keep-aliveHTTP keep-alive,又称为HTTP持久连接(HTTP persistent connection)...patch,原理可见这篇文章现象具体现象为在前端页面中的前几次API请求中,大概率出现一次请求(4s左右)通过Apifox进行接口压力测试也能轻易复现问题,且在一轮3600次的请求中,请求基本只出现在前几次请求中图片排查思路整体思路为先由...API服务从请求尾端向前查,同步可从客户端往后查监控首先看一看经过初步的接口压力测试,我们的接口耗时监控的情况:图片完全没有异常的请求,最大耗时也仅在45mspprof考虑到监控埋点的范围有限,再使用...,可以看到请求耗时在gin....但都有超长请求,不能说明是客户端没有重用连接导致的LB排查在确保客户端请求正确性的前提下依旧能复现请求,接下来就要往LB去排查了,通过服务端日志输出的ip地址来确认负载均衡指向的机器,很快我们发现请求都出现在同一台用于负载均衡的服务器上

1.1K40

API 请求?这次锅真不在后端

问题 我们在开发过程中,发现后端 API 请求特别,于是跟后端抱怨。 “怎么 API 这么啊,请求一个接口要十几秒”。 而且这种情况是偶现的,前端开发同学表示有时候会出现,非必现。...但是后端同学通过一顿操作后发现,接口没有问题,他们是通过 postman 工具以及 test 环境尝试,都发现接口请求速度是没有问题的。 “那感觉是前端问题”?...我们来梳理一下问题,如下: 后端 API 请求特别,而且是偶现的。 在 test 环境没有复现。 postman 工具请求没有复现。 问题解决过程 时间都去哪了?...可以看到,其耗时主要是在 Stalled,代表浏览器得到要发出这个请求的指令到请求可以发出的等待时间,一般是代理协商、以及等待可复用的 TCP 连接释放的时间,不包括 DNS 查询、建立 TCP 连接等时间等...(因为我们一个选项卡只请求一个 SSE)。 开发环境下,关闭该功能。

78210

API 请求?这次锅真不在后端

问题我们在开发过程中,发现后端 API 请求特别,于是跟后端抱怨。“怎么 API 这么啊,请求一个接口要十几秒”。而且这种情况是偶现的,前端开发同学表示有时候会出现,非必现。...但是后端同学通过一顿操作后发现,接口没有问题,他们是通过 postman 工具以及 test 环境尝试,都发现接口请求速度是没有问题的。“那感觉是前端问题”?...我们来梳理一下问题,如下:后端 API 请求特别,而且是偶现的。在 test 环境没有复现。postman 工具请求没有复现。问题解决过程时间都去哪了?第一个问题,API 耗费的时间都用来做什么了?...可以看到,其耗时主要是在 Stalled,代表浏览器得到要发出这个请求的指令到请求可以发出的等待时间,一般是代理协商、以及等待可复用的 TCP 连接释放的时间,不包括 DNS 查询、建立 TCP 连接等时间等...(因为我们一个选项卡只请求一个 SSE)。开发环境下,关闭该功能。

81950

监控微信小程序中的HTTP请求

摘要: 请求时间太长,影响用户体验,使用 Fundebug 监控请求。...时隔一年,微信小程序插件已经更新到 1.3.1, 而且提供了一个非常有用的功能,支持监控 HTTP 请求。对于轻量级的性能分析,可以说已经够用。...本文我们以一个天气微信小程序为例(由bodekjan开发),来演示如何监控请求。bmap-wx.js中的weather()函数调用百度地图小程序 api 提供的接口来获取天气预报信息。...于是,我们使用 Fundebug 来监控请求过慢的情况。接下来,我们来演示如何监控请求。注册账户后,记得要在创建项目是选择“微信小程序”这一项目类型。...监控请求 最后,最重要的一步,配置httpTimeout来监控超过特定时长的请求,httpTimeout 类型为 Number,单位为毫秒(ms)。演示起见,我们将时间设置为 200 毫秒。

1.4K40

feign远程调用丢失请求头源码分析与解决

--->服务A成功; 服务A-->服务B失败; 浏览器-->服务B失败 结合上面所说,服务AB都会先判断用户登录状态,浏览器直接访问AB时都会带上登录成功后保存的cookie,而服务A通过Feign远程调用...feign源码分析 我们来看下feign远程调用是如何执行的,我们在feign远程调用之处打上断点 ?...如果是真正的远程调用,就会最后进入最后一行。 ?...小结 使用feign进行远程调用时,首先判断目标方法类型,如果是 toString(),hashCode(),equals()这几个方法,那就是本地直接完成了; 如果是真正的远程调用,执行的是 executeAndDecode...总结 feign远程调用,自己创建一个新的request对象,按照指定的路径和参数发起新的请求,并得到响应结果。但是这个新的request对象请求头为空,所以丢失了原先请求中的数据。

2K41
领券