当前位置: 首页 > news >正文

提升接口性能方式汇总

1,sql

2,缓存,尤其面向用户,如app数据。可用redis+咖啡,二级缓存。

充分利用redis,redis数据类型很多,平时场景中结合实际情况,找一下对应的redis实现方案

比如Zset可以排序,可以用于分页查询。

同时从Zset取数据时,注意数据量,如果集合中包含很多数据,可以分批处理

ZRANGE key start stop [WITHSCORES],其中start stop 代表元素在集合中位置,

排序时根据分值从小到大,升序排列。

Redis Zrange 命令 | 菜鸟教程

3,异步,(线程/MQ)不重要的业务逻辑

4,并发查询,java8 CompletableFuture。场景,多个查询场景。

5,多线程

6,MQ,先接,慢慢处理

7,分批,

增加/查询

尤其对外部系统查询 + CompletableFuture

8,大事物,

分批处理限制处理量,异步,编程行事物替代声明事物(缩小事物范围),查询放在事物外

9,分库分表 shardingJdbc

可以解决数据库连接资源不足和磁盘IO性能瓶颈问题

10,远程调用(批量+并行+限制QPS+缓存)

1>分批批量调用,分为同步/异步调用(并行调用),

同步会导致整体耗时还是比较长,

异步可以采用CompletableFuture,但是还要考虑调用第三方频率不能太高,不能给对方造成压力。

2>量大,但是每次只能查询一个条件

注意调用频次,比如1s限制50次查询,休眠1s,再调用。CompletableFuture.supplyAsync

12,skywalking

----参考

--本内容由 @试图保住头发的N_Y 大佬下凡召唤,热心市民@AI视频小助理闪现赶来

一、接口性能优化的常用方法,包括优化索引、SQL语句优化和远程调用等。同时也提到了一些需要注意的问题和技巧。
00:01 - 接口性能优化是后端开发的公共问题
00:13 - 优化索引是优化接口性能的最简单方法
03:11 - 除了优化索引,还可以通过优化SQL语句来提高性能,如避免使用select星、批量操作等15个小技巧
二、五种优化接口性能的方法,包括并行调用、数据异构、重复调用、异步处理等,其中详细介绍了每种方法的实现原理和注意事项。
04:46 - 使用并行调用远程接口可以提高性能
05:26 - 通过数据异构方案可以减少远程接口调用次数
08:14 - 使用多线程或MQ异步处理可以提高接口性能
三、如何优化接口性能,包括使用MQ消息队列、避免使用ATRANSACTIONAL注解、优化大事务问题、使用分布式锁等。同时还介绍了数据库锁的优化方向。
09:28 - 接口逻辑改成视频中这样的,提升接口性能
09:56 - 避免使用ATRANSACTIONAL注解,引发大事务问题
10:57 - 使用synchronized关键字加锁,优化代码,提升性能
四、如何优化远程接口调用性能,包括同步分页调用和异步调用,并使用缓存来提高性能,同时讨论了使用REDIS和基于内存的缓存的优缺点。
14:14 - 调用接口从数据库获取数据需要网络传输,带宽限制会影响获取速度和耗时时间。
14:54 - Java中同步分页调用远程接口,批量查询用户信息,避免邮件预警。
16:02 - 使用REDIS缓存提高数据获取性能,但需考虑数据一致性问题。
五、在接口性能受限时,可以通过分库分表等方法来解决数据库连接资源不足、磁盘IO性能瓶颈、检索数据耗时消耗CPU资源等问题。
18:56 - 接口性能受限可能是因为数据库请求
20:05 - 分库分表可以解决数据库连接资源不足和磁盘IO性能瓶颈问题
21:01 - 使用辅助功能可以提升查找问题的效率,如开启慢查询日志和监控系统
 

http://www.lryc.cn/news/365681.html

相关文章:

  • C++中的常见语法糖汇总
  • TensorFlow Playground神经网络演示工具使用方法详解
  • 【git】subtree 简单教程
  • C语言基础:字符串函数使用与剖析
  • 搭建Vulnhub靶机网络问题(获取不到IP)
  • Prompt 提示词强大方法论和框架2
  • C语言分支和循环(2)
  • 14.FreeRTOS 流媒体缓存 Stream Buffer
  • 利用ffmpeg把视频分解成图片(每秒x张图)再图片合成视频
  • 冯喜运:6.7今日外汇黄金原油走势分析及日内操作策略
  • [网络基础]——计算机网络(OSI)参考模型 详解
  • 使用 Java 获取图片的 MD5 编码
  • GO——泛型
  • TSP(Python):Qlearning求解旅行商问题TSP(提供Python代码)
  • 【精通NIO】NIO介绍
  • ssh远程管理
  • 【ai】pycharm远程ssh开发
  • leetcode 9 回文数
  • 学习Python的基础知识
  • 第五届上海市青少年算法竞赛网络同步赛(小学组)
  • 【区分vue2和vue3下的element UI Cascader 级联选择器组件,分别详细介绍属性,事件,方法如何使用,并举例】
  • pottery,一个超酷的 Python 库!
  • 【Android面试八股文】在Java中重载和重写是什么意思,区别是什么?
  • 【第二篇】SpringSecurity源码详解
  • 基于Python+FFMPEG环境下载B站歌曲
  • 静态 VxLAN 浅析及配置示例(头端复制)
  • 2023年与2024年AI代理基础设施的演进:六大关键变化
  • 实验三-8086指令的应用《计算机组成原理》
  • 《维汉翻译通》App全新升级:维吾尔语短文本翻译、汉语拼音标注、维语词典、谚语格言名句等功能统统免费!还支持维吾尔文OCR识别提取文字!
  • 全年申报!2024年陕西省双软企业认定条件标准、申报好处费用