解決併發問題

2021-07-16 08:08:49 字數 841 閱讀 5996

一.使用redis鎖

/*** 智慧型雲-工單系統-搶單-工單id鎖key

*/public static final string cloud_live_gain_order_lock_orderid = "cloud_live_gain_order_lock_orderid_";

@component

public class rediskeylockutil

timeoutmsecs -= 1000;

thread.sleep(1000);

}return false;

} catch (exception e) ; expireseconds={}, timeoutmsecs={}", key, expireseconds, timeoutmsecs, e);

}return false;}}

二:使用google  ratelimiter 限流工具類

public class adddefaultcostconfigbizimpl  {

private static final logger log = logge***ctory.getlogger(querycostitemrulebizimpl.class);

private final ratelimiter limiter = ratelimiter.create(0.5);//建立乙個具有穩定吞吐量的速率限制器。設定每秒請求數(permits)為1個

在需要阻塞的地方加上就可以了

//阻塞方式

limiter.acquire();//從速率限制器中獲取乙個許可(permits),超過(permits)會被阻塞,直到請求被授予。

參考**

redis解決併發問題

用redis處理高併發是個很常見的方式,因為redis的訪問效率很高 直接訪問記憶體 一般我們會用來處理 一瞬間的併發量。那如果要使用redis來進行高併發問題的解決的話,應注意以下幾點 1 首先我們要先知道,我們在儲存時,應使用redis的setnx方法,不應該使用set方法,因為setnx擁有原...

活動秒殺解決併發問題

一 秒殺帶來了什麼?秒殺或搶購活動一般會經過 預約 搶訂單 支付 這3個大環節,而其中 搶訂單 這個環節是最考驗業務提供方的抗壓能力的。搶訂單環節一般會帶來2個問題 1 高併發 2 超賣 任何商品都會有數量上限,如何避免成功下訂單買到商品的人數不超過商品數量的上限,這是每個搶購活動都要面臨的難題。二...

樂觀鎖解決併發問題

為什麼需要鎖 在多使用者環境中,在同一時間可能會有多個使用者更新相同的記錄,這會產生衝突。這就是著名的併發性問題。典型的衝突有 丟失更新 乙個事務的更新覆蓋了其它事務的更新結果,就是所謂的更新丟失。例如 使用者a把值從6改為2,使用者b把值從2改為6,則使用者a丟失了他的更新。髒讀 當乙個事務讀取其...