通過日誌定位分析介面呼叫緩慢的原因

2022-04-14 04:34:22 字數 1156 閱讀 1764

最近我們的介面中有兩個被呼叫的時候比較緩慢,乙個查詢大概需要2-3秒的樣子,我們需要定位一下具體需要的時間秒數,就讓某猿過去實現了。提交**我review的時候我嚇了一跳,那那兩個類進行了手動統計時間,**就不貼了,這樣十分不好啊,如果以後要統計其他的controller或者service那就得手動再寫,所以我重寫了乙份

<

aop:aspectj-autoproxy

proxy-target-class

="true"

>

aop:aspectj-autoproxy

>

在這裡我們使用@around通知來進行針對service的切面攔截,

@aspect

@component

public

class

logservicetaketime

@around("performance()")

public object dolog(proceedingjoinpoint joinpoint) throws

throwable

catch

(exception e)", e.getmessage());

}finally

毫秒", took);

"controller 執行時間為: {}毫秒", took);

} else

if (took > 2000) 毫秒", took);

"controlle r執行時間為: {}毫秒", took);

} else

毫秒", took);

"controller 執行時間為: {}毫秒", took);

}

//todo 日誌儲存到mongodb中

}

return

result;}}

這裡就寫的十分簡單了,針對不同的耗時分別輸出列印日誌的型別

有部分朋友喜歡把資料儲存到資料庫中,其實我不推薦,最好是存入mongodb中即可,一來減少資料庫壓力,一來便於日後對日誌進行分析統計以及報表製作。

最後的輸出是這樣的

通過MySQL慢查詢日誌定位執行效率低的SQL語句

利用命令 show variables like query 檢視是否開啟慢查詢日誌 slow query log on表示開啟,off表示關閉 long query time 單位秒,如果查詢超過此處設定的秒數,則會被寫入到慢查詢日誌中 slow query log file 慢查詢日誌的目錄 如...

Dubbo 介面呼叫結果快取的實現分析

結果快取,用於加速熱門資料的訪問速度,dubbo提供宣告式快取,以減少使用者加快取的工作量。配置如 inte ce com.foo.barservice cache lru 或 inte ce com.foo.barservice name findbar cache lru dubbo refer...

通過PHP呼叫聚合資料的證件識別介面

在開始前,請作如下準備 1.學會用php輸出 hello world 2.去 聚合資料 申請證件識別專用的key 1.配置好php開發環境 2.在相應的本地 根目錄下新建乙個資料夾並命名為 card 3.請準備一張jpg格式的身份證 本示例中的來自網路 並命名為1.jpg,放在card目錄 4.請務...