全國(guó)做網(wǎng)站的12345微信公眾號(hào)
1,sql
2,緩存,尤其面向用戶,如app數(shù)據(jù)??捎胷edis+咖啡,二級(jí)緩存。
充分利用redis,redis數(shù)據(jù)類型很多,平時(shí)場(chǎng)景中結(jié)合實(shí)際情況,找一下對(duì)應(yīng)的redis實(shí)現(xiàn)方案
比如Zset可以排序,可以用于分頁(yè)查詢。
同時(shí)從Zset取數(shù)據(jù)時(shí),注意數(shù)據(jù)量,如果集合中包含很多數(shù)據(jù),可以分批處理
ZRANGE key start stop [WITHSCORES],其中start stop 代表元素在集合中位置,
排序時(shí)根據(jù)分值從小到大,升序排列。
Redis Zrange 命令 | 菜鳥教程
3,異步,(線程/MQ)不重要的業(yè)務(wù)邏輯
4,并發(fā)查詢,java8 CompletableFuture。場(chǎng)景,多個(gè)查詢場(chǎng)景。
5,多線程
6,MQ,先接,慢慢處理
7,分批,
增加/查詢
尤其對(duì)外部系統(tǒng)查詢 +?CompletableFuture
8,大事物,
分批處理限制處理量,異步,編程行事物替代聲明事物(縮小事物范圍),查詢放在事物外
9,分庫(kù)分表 shardingJdbc
可以解決數(shù)據(jù)庫(kù)連接資源不足和磁盤IO性能瓶頸問(wèn)題
10,遠(yuǎn)程調(diào)用(批量+并行+限制QPS+緩存)
1>分批批量調(diào)用,分為同步/異步調(diào)用(并行調(diào)用),
同步會(huì)導(dǎo)致整體耗時(shí)還是比較長(zhǎng),
異步可以采用CompletableFuture,但是還要考慮調(diào)用第三方頻率不能太高,不能給對(duì)方造成壓力。
2>量大,但是每次只能查詢一個(gè)條件
注意調(diào)用頻次,比如1s限制50次查詢,休眠1s,再調(diào)用。CompletableFuture.supplyAsync
12,skywalking
----參考
--本內(nèi)容由 @試圖保住頭發(fā)的N_Y 大佬下凡召喚,熱心市民@AI視頻小助理閃現(xiàn)趕來(lái)
一、接口性能優(yōu)化的常用方法,包括優(yōu)化索引、SQL語(yǔ)句優(yōu)化和遠(yuǎn)程調(diào)用等。同時(shí)也提到了一些需要注意的問(wèn)題和技巧。
00:01 - 接口性能優(yōu)化是后端開發(fā)的公共問(wèn)題
00:13 - 優(yōu)化索引是優(yōu)化接口性能的最簡(jiǎn)單方法
03:11 - 除了優(yōu)化索引,還可以通過(guò)優(yōu)化SQL語(yǔ)句來(lái)提高性能,如避免使用select星、批量操作等15個(gè)小技巧
二、五種優(yōu)化接口性能的方法,包括并行調(diào)用、數(shù)據(jù)異構(gòu)、重復(fù)調(diào)用、異步處理等,其中詳細(xì)介紹了每種方法的實(shí)現(xiàn)原理和注意事項(xiàng)。
04:46 - 使用并行調(diào)用遠(yuǎn)程接口可以提高性能
05:26 - 通過(guò)數(shù)據(jù)異構(gòu)方案可以減少遠(yuǎn)程接口調(diào)用次數(shù)
08:14 - 使用多線程或MQ異步處理可以提高接口性能
三、如何優(yōu)化接口性能,包括使用MQ消息隊(duì)列、避免使用ATRANSACTIONAL注解、優(yōu)化大事務(wù)問(wèn)題、使用分布式鎖等。同時(shí)還介紹了數(shù)據(jù)庫(kù)鎖的優(yōu)化方向。
09:28 - 接口邏輯改成視頻中這樣的,提升接口性能
09:56 - 避免使用ATRANSACTIONAL注解,引發(fā)大事務(wù)問(wèn)題
10:57 - 使用synchronized關(guān)鍵字加鎖,優(yōu)化代碼,提升性能
四、如何優(yōu)化遠(yuǎn)程接口調(diào)用性能,包括同步分頁(yè)調(diào)用和異步調(diào)用,并使用緩存來(lái)提高性能,同時(shí)討論了使用REDIS和基于內(nèi)存的緩存的優(yōu)缺點(diǎn)。
14:14 - 調(diào)用接口從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)需要網(wǎng)絡(luò)傳輸,帶寬限制會(huì)影響獲取速度和耗時(shí)時(shí)間。
14:54 - Java中同步分頁(yè)調(diào)用遠(yuǎn)程接口,批量查詢用戶信息,避免郵件預(yù)警。
16:02 - 使用REDIS緩存提高數(shù)據(jù)獲取性能,但需考慮數(shù)據(jù)一致性問(wèn)題。
五、在接口性能受限時(shí),可以通過(guò)分庫(kù)分表等方法來(lái)解決數(shù)據(jù)庫(kù)連接資源不足、磁盤IO性能瓶頸、檢索數(shù)據(jù)耗時(shí)消耗CPU資源等問(wèn)題。
18:56 - 接口性能受限可能是因?yàn)閿?shù)據(jù)庫(kù)請(qǐng)求
20:05 - 分庫(kù)分表可以解決數(shù)據(jù)庫(kù)連接資源不足和磁盤IO性能瓶頸問(wèn)題
21:01 - 使用輔助功能可以提升查找問(wèn)題的效率,如開啟慢查詢?nèi)罩竞捅O(jiān)控系統(tǒng)
?