彻底理解怎样优化接口性能

锦通  金牌会员 | 2024-12-21 16:01:33 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 880|帖子 880|积分 2640

作为后端研发,必须要把握怎么优化接口的性能大概说是响应时间,如许才能提高系统的系能,本文通过如下两个方面举行分析:

   一.后端代码

   有如下几步:

1.缓存机制
这是最场景的方式,当利用了缓存后,就可以通过缓存直接拿到数据,进而返回,但是利用了缓存以后也会引入一下问题,好比缓存与数据库不一致问题、缓存穿透击穿雪崩等一些场景问题,可以根据差别的应用场景来选择差别的缓存机制。
2.并发调用
好比调用A系统,A系统会去调用B系统和C系统,如果是链式调用,B系统需要耗时100ms,C系统需要耗时100ms,如许就会耗时300ms,如果采用并发的方式同时去调用,就最多需要200ms。
3.同步接口异步化
好比说请求中有部门逻辑的耗时特别长,但是这部门逻辑也不影响主业务,此时就可以把耗时的逻辑从主业务中剥离出来,通过异步举行处置处罚,如许就可以提高主业务的相应时间,也就提高了接口的性能。
4.避免大事件
大事件就是指的历经时间很长的事件,好比说利用了sprind的transaction的管理事件,就有大概会启动大事件,因为spring的事件管理原因是将多个事件合并在一个执行中,如果同一个接口有多个数据库读写,并且该接口并发大的话,就有大概导致大量的数据锁在数据库中,造成大量的阻塞,进而导致数据库连接池连接耗尽,所以需要将大数据举行拆分,将非事件操纵和事件操纵举行区分出来。
5.优化日记纪录
因为在高并发的场景下答应日记大概会导致接口性能降落,而且要打印日记的时候避免打印大数据、大对象。
   二.数据库

  有如下几步: 

1.数据库查询优化
好比添加合适的索引、查询的时候只查询必要的字段、优化深分页(固然不能完全避免深分页,但是可以举行优化,好比和前端约定,每次都要把当前页面的末了一条数据的id传入到后端),还可以查看《谈谈对Mysql数据库优化的见解》,大概是查看我Mysql专栏下的其他文章,对数据库的优化都做了具体的分析。
2.表计划冗余数据
固然是反范式的计划,但是冗余数据可以淘汰多表关联查询,如果在分库分表的时候,可以在差别的库上冗余同一张数据,如许就可以不需要跨库查询了。
3.利用连接池管理数据库连接
和线程池一样,利用池化技能来管理连接,避免频仍创建和销毁连接,调高数据库的效率。
4.利用数据压缩技能
这一点针对网络数据传输的,对于大数据量的响应,需要只管利用压缩来举行处置处罚,好比说利用gzip可以淘汰网络传输的数据量,加快了接口响应。
5.终极绝招
如果此时优化数据库配置,优化sql都没办法解决,此时就有两个终极解决方案:
(1)加机器;
(2)换数据库,有大概当前数据库不适应你的系统,可以去找一下是否有更合适该业务系统的数据库。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

锦通

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表