接口响应时间长问题排查流程

当一个接口响应时间非常长时,如何定位问题并解决?

1、先拿到curl。浏览器netWork --> copy as curl 如果是app则抓包下,copy出来.如下:

curl -H 'Host: xxxxxx.com' -H 'Cookie: uid=CgoUFF/J3UVXIkMEB0//Ag==' -H 'apptype: 3' -H 'user-agent: ling zhi wen zhen ce shi/2.1.2 (iPhone; iOS 14.0; Scale/2.00)' -H 'storeid: ' -H 'deviceuuid: 6E47AC24-5477-4CB3-9E97-F0689776DFBA' -H 'accountid: 1293541453032587288' -H 'appversion: 2.1.2' -H 'client: ios' -H 'version: 2.1.2' -H 'usertype: GROUPUSER' -H 'sign: 89BEE7049DF61EFFFBA226AE076023F9' -H 'token: 9a2123abccbee8fcee1d0265a4bb3d44' -H 'timestamp: 1608776144395' -H 'accept-language: en;q=1' -H 'accept: */*' -H 'content-type: application/json;charset=utf-8' -H 'appver: 3' --data-binary '{"token":"9a2123abccbee8fcee1d0265a4bb3d44","organSign":"ZHL0009529","activityType":1}' --compressed 'https://xxxxx.com/patient/rights/verify'

2、curl 改造。在curl和-H前加入:

 "\ntime_namelookup: "%{time_namelookup}"\ntime_connect: "%{time_connect}"\ntime_appconnect: "%{time_appconnect}"\ntime_pretransfer: "%{time_pretransfer}"\ntime_starttransfer: "%{time_starttransfer}"\ntime_redirect: "%{time_redirect}"\ntime_total: "%{time_total}"\n"

3、改造后的curl如下:

curl -w  "\ntime_namelookup: "%{time_namelookup}"\ntime_connect: "%{time_connect}"\ntime_appconnect: "%{time_appconnect}"\ntime_pretransfer: "%{time_pretransfer}"\ntime_starttransfer: "%{time_starttransfer}"\ntime_redirect: "%{time_redirect}"\ntime_total: "%{time_total}"\n"  -H 'Host: xxx.com' -H 'Cookie: uid=CgoUFF/J3UVXIkMEB0//Ag==' -H 'apptype: 3' -H 'user-agent: ling zhi wen zhen ce shi/2.1.2 (iPhone; iOS 14.0; Scale/2.00)' -H 'storeid: ' -H 'deviceuuid: 6E47AC24-5477-4CB3-9E97-F0689776DFBA' -H 'accountid: 1293541453032587288' -H 'appversion: 2.1.2' -H 'client: ios' -H 'version: 2.1.2' -H 'usertype: GROUPUSER' -H 'sign: 89BEE7049DF61EFFFBA226AE076023F9' -H 'token: 9a2123abccbee8fcee1d0265a4bb3d44' -H 'timestamp: 1608776144395' -H 'accept-language: en;q=1' -H 'accept: */*' -H 'content-type: application/json;charset=utf-8' -H 'appver: 3' --data-binary '{"token":"9a2123abccbee8fcee1d0265a4bb3d44","organSign":"ZHL0009529","activityType":1}' --compressed 'https://xxxxxx.com/patient/rights/verify'

4、执行curl。结果如下:

time_namelookup: 0.253
time_connect: 0.257
time_appconnect: 0.361
time_pretransfer: 0.361
time_starttransfer: 5.618
time_redirect: 0.000
time_total: 5.618

5、相关含义如下:

参数

含义

  

time_namelookup

DNS解析域名时间

  

time_connect

TCP连接的时间,三次握手的时间

  

time_starttransfer

从请求开始到第一个字节将要传输的时间

  

time_total

总时间

  

speed_download

下载速度,单位-字节每秒

  

time_appconnect

SSL|SSH等上层连接建立的时间

  

time_pretransfer

从请求开始到响应开始传输的时间

  

time_redirect

从开始到最后一个请求事务的时间

 

6、如果时间大部分是time_starttransfer 减去time_pretransfer的值。则代表此请求慢的原因在服务器业务代码执行部分。

7、业务代码耗时代码快定位。使用arthas排查即可。

8、启动arthas.

java -jar arthas-boot.jar

9、选择Java进程。输入序号。

10、执行 类全名 + 方法名

trace com.xxxx.service.impl.xxxxServiceImpl xxxMethod

11、查看耗时调用。

 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 国税局发票查验API接口文档说明是一份重要的文档,它对于开发人员实现发票查验功能非常有帮助。该文档详细说明了API接口的调用方法和参数格式,包括请求参数、响应参数、错误码等信息,以便开发人员进行接入和调试工作。 该文档中,请求参数包括发票代码、发票号码、开票日期、金额等信息,开发人员需要按照规定格式进行传输。响应参数中包括了发票的相关信息,如发票种类、购买方名称、税号、开票日期、发票代码、发票号码、发票金额等。 API接口中还包括了错误码,响应结果中如果出现错误,会返回对应的错误码和错误信息,为开发人员进行问题排查提供了便利。 总之,国税局发票查验API接口文档说明提供了详细的接口调用流程和规则,为开发人员实现发票查验功能提供了指导和支持。 ### 回答2: 国税局发票查验api接口文档提供了开发者用于接入国税局发票查验系统的标准接口,以便于开发者可以使用该接口来进行发票的查验工作。 该接口文档由国税局统一制定并发布,内容主要包括接口说明、请求方式、参数说明、响应参数等内容,开发者可根据接口文档进行程序开发。在接入国税局发票查验系统时,需要先向国税局申请接口授权码,并使用授权码进行访问。 使用该API接口可以实现方便快捷的发票查询工作,可以节省用户的时间和精力。同时,该接口具有高可用性、高安全性等优点,可以确保信息安全及时性、准确性。 总之,国税局发票查验API接口文档说明为开发者提供了标准的接入国税局发票查验系统的方式,并为发票查验工作的实施提供了便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值