成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

API接口性能優化總結

開發 前端 運維
從前端發起調用到后端一般經過網關層、應用層、存儲層。每一層都可以優化,本篇文章主要是應用層優化。

摘要

在web開發過程中,經常會遇到接口RT高的情況,除了通過監控事后優化的方式,我們還需要掌握一些常用的手段,避免寫出慢的接口。從前端發起調用到后端一般經過網關層、應用層、存儲層。每一層都可以優化,本篇文章主要是應用層優化。

常見性能優化思路

從理論上分析,性能優化手段通常有

批量

  1. 請求數據庫,我們一般會用in,提高數據庫查詢效率
  2. 調用外部服務,我們也需要要求依賴方提供批量接口,避免多次網絡請求
  3. 批量查詢的id數量也不宜過多

之前在sql IN一文中分析過,IN 的數量太多時,性能會下降。同樣服務間調用,數據量過大,帶寬占用大。所以這時候需要分批調用。

 List<String> res=  Lists.partition(ids, 200).parallelStream()
.flatMap(batch -> mServiceA.batchGetA(batch).stream())
.collect(Collectors.toList());

并行/并發處理,利用多線程可以提高效率

比如接口中需要請求多個外部接口/數據庫,相互之間無依賴,因為這種操作都是IO操作,可以由順序執行改為并行執行,充分利用cpu處理能力,如

CompletableFuture<String> a = CompletableFuture.supplyAsync(() -> mServiceA.getA());
CompletableFuture<String> b = CompletableFuture.supplyAsync(() -> mServiceB.getB());
CompletableFuture.allOf(a,b).join();

異步,非強依賴的調用可以通過異步化處理

異步,分為讀寫。比如寫是弱依賴,可以用 @Async 或者其他操作。

如果是讀,不是必須的數據,也需要加上超時處理,因為外部調用有網絡原因,都是不可靠的

CompletableFuture<String> a = CompletableFuture.supplyAsync(() -> mServiceA.getA());

CompletableFuture<String> b = CompletableFuture.supplyAsync(() -> mServiceB.getB());
try {
CompletableFuture.allOf(a, b).get(1000, TimeUnit.MILLISECONDS);
} catch (Exception ex) {
if (!a.isDone()) {

}
if (!b.isDone()) {

}
}

減少數據處理量

eg. 拉取外部數據,全量的循環去拉,增量的使用事件通知機制,這樣可以減少數據處理量

避免深度分頁

數據庫的深度分頁性能比較差,需要在業務上避免深度分頁

緩存

緩存本質上就是從讀取速度快的設備中直接獲取數據。通過空間來換時間。對于DB中的數據可以緩存,對于外部服務的數據同樣可以緩存

使用多級緩存,可以最大限度提升性能。

責任編輯:張燕妮 來源: 方丈的寺院
相關推薦

2020-06-05 08:53:31

接口性能實踐

2023-10-18 10:38:53

API

2021-08-27 14:26:06

開發技能React

2012-09-11 15:43:32

HBase

2019-02-25 07:07:38

技巧React 優化

2021-02-24 15:16:45

微服務架構數據

2016-12-19 10:00:00

React性能優化

2009-12-24 16:46:03

WPF性能優化

2015-09-30 14:40:47

WebAPI接口設計

2022-09-13 12:56:28

前端優化

2017-12-04 12:29:15

前端JavaScript性能優化

2015-07-09 13:19:17

Ceph分布式存儲性能調優

2015-11-05 09:02:05

Java代碼性能優化

2022-10-09 13:36:44

接口性能優化

2021-01-27 11:50:07

Python優化代碼

2024-01-22 13:16:00

接口性能優化本地緩存

2010-12-10 10:17:21

關系型數據庫

2024-03-01 12:19:00

接口性能優化

2024-06-21 08:21:44

2018-11-20 10:50:00

Java性能優化編程技巧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品高清视频在线观看 | 一区二区激情 | 欧美三级免费观看 | 欧美精品一区三区 | av天空| 国产精品入口 | 亚洲国产aⅴ精品 | 国产精品久久久久aaaa九色 | 免费一区二区三区 | 国产免费一区二区 | 97av在线| 免费视频一区二区 | 欧美一区二区网站 | 羞羞视频免费在线观看 | 午夜三级在线观看 | 精品一区二区久久久久久久网站 | 国产一区二区三区久久久久久久久 | 日韩电影中文字幕在线观看 | 日韩欧美国产精品一区 | 精品一区二区久久久久久久网站 | 国产在线精品一区二区三区 | 欧美激情久久久 | 蜜桃精品视频在线 | 第四色狠狠 | 蜜桃视频在线观看免费视频网站www | 狠狠干综合视频 | 成人免费视频网站在线看 | 成人黄色电影在线播放 | 国产精品国产三级国产aⅴ无密码 | 国产免费一区二区 | 日韩精品一区二区三区在线观看 | 亚洲一区二区在线播放 | 国产高清精品一区二区三区 | 日韩三级| 欧美黄色绿像 | 日韩在线播放中文字幕 | 成年人在线视频 | 黄色片免费看 | 成人免费黄色片 | 91佛爷在线观看 | 一级视频在线免费观看 |