關於最佳化API介面響應速度
關於最佳化API介面響應速度
關於最佳化API介面響應速度。。。
今天只是粗略寫寫,關於這個最佳化設計的方面很多,接下來再仔細研究研究。
今天發現介面響應很慢,調開發者工具出來檢視才發現介面居然耗時2秒左右,然後查了下後臺邏輯,發現裡面邏輯很多,有呼叫外部幾個介面,還要查詢資料庫。
兩個介面耗時都接近1.5秒了。看了下是查詢工作流的介面,看來只能找平臺部那邊最佳化了。
剩下的就是最佳化我們這邊系統的查詢效率了。
首先需要分析為何慢了
是不是資源層面的瓶頸?
是不是快取沒新增,如果加了,是不是熱點資料導致負載不均衡?
是不是有依賴於第三方介面?
是不是介面涉及業務太多,導致程式跑很久?
是不是sql層面的問題導致的等待時機加長,進而拖慢介面?
網路層面的原因?頻寬?DNS解析?
程式碼不行?
未知?
對症下藥
資源緊張,加機器,幹上去,負載均衡搞起來!
加快取可以解決的問題都不是什麼大問題,存在熱點資料可以將某幾個熱點單獨出來用專門的機器進行處理,不要因為區域性影響整體(這一次好像不涉及這個)
一方面與第三方溝通介面響應問題,另一方面超時時間注意把控,如果可以非核心業務能非同步久非同步掉。
把非核心的業務進行非同步化操作。記住如果程式碼層面是非核心業務,但是會影響使用者感知,需要慎重決定是否非同步。
如果是程式碼不良導致加鎖了,儘量最佳化索引或sql語句,讓鎖的級別最小(到行),一般來說到行差不多了。如果是單個sql跑慢了,需要分析是不是索引沒加或者sql選的索引錯了,索引該加的就加了,該force index也加了。
網路原因,需要找運維人員,單方面比較難有大的最佳化。
程式碼確實差,那也無藥可救了。毀滅吧!
剛開始以為是機器效能不行,看了下系統負載,發現佔用率並不高,好像也不是效能問題。
接著以為是應用最佳化,但是看了下 JVM 的相關引數和 Java 堆的使用情況,發現都不高,感覺應該是資料庫的原因了,當時建表的時候沒有建相關的索引。
然後考慮加下索引試試。
加了一個組合索引,還有一個單列索引。
加了之前在程式碼中加了時間記錄,感覺有所提升。
剩下的就是外部介面的耗時了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027459/viewspace-2947177/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 最佳化拼多多關鍵詞搜尋介面:提高查詢響應速度的技巧
- Api 介面的統一響應封裝API封裝
- 規範 API 介面錯誤響應格式API
- 關於響應式佈局,你必須要知道關於響應式佈局的幾件事
- 關於 API介面的一些知識分享API
- 選擇代理IP,穩定時間和響應速度是關鍵
- 多個request介面的功能最佳化處理速度
- API關鍵詞介面的應用範圍說明API
- 淺談關於ERP上貨需要使用的API介面及應用場景分析API
- 如何使用電商API介面API介面如何應用API
- 如何提升伺服器的響應速度伺服器
- WPF效能最佳化示例:使用VirtualizingStackPanel提升介面載入速度
- JavaScript Fetch API請求和響應JavaScriptAPI
- 觸控式螢幕響應速度效能分析
- 最佳化Spring Boot應用的Docker打包速度Spring BootDocker
- jmeter 介面自動化連載 (10)- 響應資訊不明確的介面關聯JMeter
- 關於 const 最佳化。
- Android效能最佳化之加快應用啟動速度Android
- SpringMVC(1)- 入門案例、基本配置、請求、響應、Servlet相關介面SpringMVCServlet
- 關於物流公司呼叫快遞單號查詢API介面的示例API
- requests介面響應出現亂碼
- ApiResponse介面統一響應封裝API封裝
- 影響代理IP訪問速度的兩個關鍵
- Vue響應式原理 - 關於Array的特別處理Vue
- 關於mysql的最佳化MySql
- 淺談App響應時間最佳化APP
- 基於LNMP的WordPress搭建與速度最佳化實踐LNMP
- API介面:原理、設計與應用API
- api介面如何對接?(帶你瞭解api介面的相關知識)API
- 加快你的網站響應速度-Vue懶載入網站Vue
- postmam響應資料的提取和關聯,用於登入介面後面其他功能依賴登入功能
- 如何使用API介面獲取商品資料,從申請API介面、使用API介面到實際應用,一一講解API
- 關於http和一次完整的前後端響應HTTP後端
- 關於常用的http請求頭以及響應頭詳解HTTP
- api應該怎麼用?(簡單方便的API介面方法)API
- Spring Boot中實現乾淨API響應Spring BootAPI
- API 所有的響應狀態碼都是 200?API
- 關於 dingo API 的疑問GoAPI