接口性能优化日记

devtools/2024/10/19 5:25:32/

背景

功能冒烟演示的时候,发现一个接口的返回时候有时会执行5秒才返回,被测试提了一个问题。这个接口是我负责,所以需要我去处理。

过程

一开始,我不知道如何入手,于是我在一些可能会导致耗时的代码前后加上了log日志,打印耗时(比如http调用,mysql操作)。
然后被pm说了,他说可以通过“听云”查看接口性能
我去,还有这么牛逼的系统吗!
登录"听云"后,我找到了我那个接口,可以看到io网络、code、sql、nosql的耗时,真的很牛逼。

回到正题,这个接口耗时5秒多,有5秒是耗费在了一个方法调用上(远程调用)。于是我就兴冲冲拍板,心想直接把这个调用改成异步不就得了!

我将这个远程调用方法改成了异步,然后提交代码。不久pm跟我说,你这样改,项目都被你改崩了。

我想:我去?异步还能崩?

pm:”这个远程调用,占了5秒,你整个接口耗时才5秒多,你即使把整个远程调用异步,你最多节省一百毫秒,这能解决问题吗?“

我想:”有道理啊,我这个蠢蛋!“

pm:”这个调用涉及到zookeeper单机,且服务器性能都很差,所以调用会很慢,你可以把它改成feign调用就好了!“

我想:”牛逼!“

总结

接口性能优化,我们本能会想到

  1. 现状:压测目前接口性能吞吐(知道性能到底多差)
  2. 定位:哪个步骤导致性能低
  3. 解决:针对问题进行解决
  4. 回归:重新压测,确认是否已经改好

其中解决的手段就是异步、缓存。
但我这次的问题就是异步、缓存都无法解决的,因为这个问题的耗时,占用整个接口耗时的99%。

有时候我们要多想!


http://www.ppmy.cn/devtools/120505.html

相关文章

videojs 播放mp4视频只有声音没有画面问题

在使用Video.js播放MP4视频时,如果遇到只有声音没有画面的情况,这通常与视频文件的编码格式、浏览器兼容性或Video.js的配置有关。以下是一些可能的解决步骤和原因分析: 1. 检查视频编码 MP4视频支持多种编码格式,但并非所有编码…

Redis相关知识

参考Redis 消息队列的三种方案(List、Streams、Pub/Sub) - 知乎 (zhihu.com) 各种开源的 MQ 已经足够使用了,为什么需要用 Redis 实现 MQ 呢? 优点: 简单轻量:Redis是一个内存中的数据存储系统&#xff…

【鸿蒙开发】探索HarmonyNext开发:常用注解详解与实战

文章目录 1. Component2. Entity3. Ability4. Slice5. IntentFilter6. Database7. PrimaryKey8. Entry9. Builder总结 在HarmonyNext开发中,注解是代码的重要组成部分,它们为开发者提供了一种简洁的方式来配置和管理应用的各种元素。本文将介绍一些Harmo…

(c++)内存四区:1.代码区2.全局区(静态区)3.栈区4.堆区

//内存四区:1.代码区 2.全局区 3.栈区 4.堆区 1.放在代码区的有:1.写的代码:只读的、共享的、存放的二进制机器指令、由操作系统直接管理 2.放在全局区的有:1.全局的(变量或常量) 2.静态的&#xff0…

python 实现点的多项式算法

点的多项式算法介绍 点的多项式算法通常指的是通过一组点(即数据点,通常包括自变量和因变量的值)来拟合一个多项式函数的方法。这种方法在数值分析、统计学、机器学习等领域中非常常见。下面是一些常见的多项式拟合算法: 1. 最小…

Vue页面,基础配置

最简单页面 日期范围及字符搜索&#xff0c;监听器处理日期范围搜索控件清空重置问题导出、导出文件文件名称带日期时间表格日期指定格式显示。。。 <template><div class"app-container"><el-form :model"queryParams" ref"queryForm…

解决登录wandb问题

选择不登录 wandb 来使用它&#xff0c;不过这意味着你将失去与 wandb 云平台的连接&#xff0c;因此不会有数据上传到 wandb 的服务器。仍然可以使用 wandb 进行本地日志记录或完全禁用它。以下是几种方式来避免登录&#xff1a; 1. 禁用 wandb 的联网功能&#xff1a; 可以…

一、MQTT简介

一、MQTT 简介与起源 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;&#xff0c;即消息队列遥测传输协议&#xff0c;由 IBM 在 1999 年开发。最初&#xff0c;MQTT 是用于将石油管道上的传感器与卫星相链接&#xff0c;旨在为受限设备和低带宽、高延迟或…