問題現象:調取一個介面每天第一或前幾次回傳結果超時(超過30s),之后會正常回傳結果(1s左右)
該介面內部通過rpc方式調取介面獲得appkey ,通過http方式調取介面獲取MD5值。
第一次請求
2017-06-17 03:29:09,170 INFO [com.***.***.developer.service.DeveloperService] - <start param>
2017-06-17 03:29:17,466 INFO [com.***.***.developer.service.DeveloperService] - <start bas>
2017-06-17 03:30:03,499 INFO [access] - <consume 82169ms for request:[DeveloperController-createMd5keyAppkeyAppsecret-{{"developerId":55,"appName":"juhe","packageName":"com.11111111111111111111111111","callbackUrl":null,"partnerCode":"1","partnerName":"1aaaaaaa","appType":1,"appDesc":"test1","deviceType":1}}]>
第二次請求
2017-06-17 03:32:02,909 INFO [access] - <consume 8023ms for request:[DeveloperController-createMd5keyAppkeyAppsecret-{{"developerId":55,"appName":"juhue","packageName":"com.11111111111111111111111111","callbackUrl":null,"partnerCode":"1","partnerName":"1aaaaaaa","appType":1,"appDesc":"test1","deviceType":1}}]>
第三次請求
2017-06-17 03:32:39,665 INFO [access] - <consume 340ms for request:[DeveloperController-createMd5keyAppkeyAppsecret-{{"developerId":55,"appName":"juhe","packageName":"com.11111111111111111111111111","callbackUrl":null,"partnerCode":"1","partnerName":"1aaaaaaa","appType":1,"appDesc":"test1","deviceType":1}}]>
這是前幾次請求create-md5key-appkey-appsecret介面的回應時間,第一次耗時82s 第二次耗時8s,第三次耗時0.3s。且如第一次日志:
2017-06-17 03:29:09,170 INFO [com.***.***.developer.service.DeveloperService] - <start param>
2017-06-17 03:29:17,466 INFO [com.***.***.developer.service.DeveloperService] - <start bas>
耗時8s,但是代碼只執行以下拼引數操作:
logger.info("start param")
AppQueryParam param = new AppQueryParam()
param.appDesc = createKeysReq.appDesc
param.appname = createKeysReq.appName
param.apppackagename = createKeysReq.packageName
param.developerid = createKeysReq.developerId
logger.info("start bas")
沒有任何外部連接。都會耗時8s之久!
后嘗試連接該網元其他介面發現,如get-developerlist-with-distributor介面:
2017-06-23 06:43:32,473 INFO [access] - <consume 20149ms for request:[DeveloperController-getAllDeveloperWithDistributor-]>
第一請求也會達到20s之久。
定位:
首先服務器負載不高,且其他服務器可復現,不是環境原因。
抓包顯示其他網元回傳資料速度正常,不是其他網元原因。
該網元其他介面也會慢只是沒create-md5key-appkey-appsecret介面這么嚴重(原因該介面業務相對復雜,又調取其他兩個網元),不是特殊介面原因。
連接的都是oracle資料庫,不是mysql八小時原因。
且獲取正常回應之后,嘗試重啟,重裝rpm包都不會使問題重現。
懷疑架構原因,各位遇到過嗎?求教各位大神!
uj5u.com熱心網友回復:
沒有解決方案之前,可以采用定時任務,沒分鐘呼叫一次,
uj5u.com熱心網友回復:
之前遇到過嗎?
uj5u.com熱心網友回復:
該網元其他介面也會慢只是沒create-md5key-appkey-appsecret介面這么嚴重(原因該介面業務相對復雜,又調取其他兩個網元),不是特殊介面原因。多重呼叫,可以試試測驗一下其他介面時間
uj5u.com熱心網友回復:
系統有沒有涉及 zookeeper ,懶加載,快取 機制 之類的uj5u.com熱心網友回復:
好高端,貌似看懂一點點uj5u.com熱心網友回復:
groovy 與 java相互呼叫會產生嗎?有什么注意事項嗎?今天把groovy部分用java重新實作,問題沒有復現,但還需要觀察。
uj5u.com熱心網友回復:
spring-boot工程,框架使用上應該沒什么問題,groovy 與 java相互呼叫會產生這種現象嗎?按理講最后編譯后都是class檔案啊
uj5u.com熱心網友回復:
securerandom.source=file:/dev/random轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110252.html
標籤:Java EE
上一篇:求助大佬,java遇到一些的問題
下一篇:eclipse首次運行
