對於高併發呼叫TOP的回答

2021-08-30 16:42:43 字數 517 閱讀 8940

乙個開發者的疑問:

應用程式會呼叫top的api去執行任務,首先根據單個任務執行時間很長,其次在使用者量增加的時候執行緒併發量很大,出現連線重置等網路問題。

回答:1.合理切割任務,將任務粒度放小,減小事務時間,提高事務執行成功率,降低回滾代價。

2.合併任務中重複的內容,在時間間隔容許的範圍內,減少可能重複的操作。

3.看是否有批量操作介面,減少單個迴圈呼叫次數。

4.控制工作執行緒池執行緒個數,根據實際效能和對方伺服器處理能力設定並行任務個數。

第四點在說明一下:

執行緒併發開的越多未必成功率越高:

首先本地資源有限(開的越多執行緒,本地gc**頻率越高,影響執行速度,效率反而降低)

其次,對方可能會由於你的ip連線數過多主動拒絕連線。(dos保護)

再次,通道無法復用。(當前1.6jdk版本已經能夠較好的復用tcp通道,併發瞬間開大量的tcp通道本身就是一種損耗,有時候部分序列化,某種程度上會減少產生tcp通道的數目合理利用通道,提高效率和成功率,客戶端做好流控也很重要。)

對於高併發呼叫TOP的回答

乙個開發者的疑問 應用程式會呼叫top的api去執行任務,首先根據單個任務執行時間很長,其次在使用者量增加的時候執行緒併發量很大,出現連線重置等網路問題。回答 1.合理切割任務,將任務粒度放小,減小事務時間,提高事務執行成功率,降低回滾代價。2.合併任務中重複的內容,在時間間隔容許的範圍內,減少可能...

javaweb對於高併發策略 快取

前言 在系統開發過程中,經常遇到資料重複插入 重複更新 訊息重發傳送等等問題,因為應用系統的複雜邏輯以及網路互動存在的不確定性,會導致這一重複現象,但是有些邏輯是需要有冪等特性的,否則造成的後果會比較嚴重,例如訂單重複建立,這時候帶來的問題可是非同一般啊。什麼是系統的冪等性 冪等是資料中得乙個概念,...

java 對於高併發的一些理解

併發是什麼 就是多個執行緒同時處理不同的操作 高併發 就是很多使用者同時訪問,導致系統資料不正確,出現髒讀等情況.常見的解決放法 硬體來說使用集群技術,更好的伺服器以及資料庫 從技術層面來說 使用快取,最常見的是redis,一般來說,可以允許丟失,變更頻率較低,全專案通用的,實際上還是要根據相應的業...