<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
秒殺環境下:訂單服務從庫存中心拿到庫存數,如果庫存總數大於0,則進行庫存扣減,並建立訂單
訂單服務負責建立訂單
庫存服務負責扣減庫存
模擬使用者存取庫存
多執行緒並行存取,出現超賣問題,執行緒不安全。沒有保證原子性
單體應用鎖指的是隻能在 一個JVM 程序內有效的鎖。我們把這種鎖叫做單體應用鎖
synchronized鎖ReentrantLock鎖
一個 Tomcat 可以看作是一個JVM程序,當大量請求並行到系統時,所有的請求都落在這唯一的一個Tomcat上,如果某些請求方法是需要加鎖的,比如:秒殺扣減庫存,是可以滿足需求的,但是隨著存取量的增加,導致一個tomcat 難以支撐,這時我們必然就是叢集部署Tomcat ,使用多個 Tomcat 共同支撐整個系統。
我們看到系統中存在兩個Tomcat,我們加的鎖是JDK提供的鎖,這種鎖只能在 一個JVM 下起到作用,也就是在一個Tomcat內是沒有問題的。當存在兩個或兩個以上的Tomcat時,大量的並行請求分散到不同的Tomcat上,在每一個Tomcat中都可以防止並行的產生,但是在多個Tomcat之間,每個Tomcat中獲得鎖的這個請求,又產生了並行,從而產生超賣現象。這也就是單體應用鎖的侷限性了,它只能在一個JVM內加鎖,所以單體鎖只能鎖住單體環境,是鎖不住分散式環境或叢集環境的。
分散式鎖的核心邏輯就是在多個服務中設定一個公共的資源,在公共資源中設定鎖,供多個服務去同時搶奪鎖資源,一旦其中一個執行緒搶奪成功,其他執行緒就進入自旋狀態,不同的嘗試存取獲取鎖資源,在獲取鎖資源的執行緒執行完相應的邏輯以後就會釋放鎖資源,其他執行緒就可以獲取鎖資源。
死鎖:
如果某個執行緒在執行鎖邏輯過程中宕機,導致沒有刪除鎖
解決:
新增過期時間
因為是非原子性新增過期時間,可能導致在新增過期時間之前就出現宕機現象,此時依舊進入死鎖狀態。原子性新增過期時間
刪除別人鎖:
當有執行緒A進入後由於超時,有其他執行緒B進入,此時redis中的鎖是執行緒B的,而原來的執行緒A接著執行,執行緒A刪除了別人的鎖。
刪除別人鎖解決:
①給當前執行緒繫結一個區域性變數uuid,由於每個執行緒都有一份自己的區域性變數,那麼執行緒和區域性變數繫結之後,我們在刪除鎖之前判斷一下,當前這把鎖是不是自己的載進行刪除
②使用lua表示式進一步解決
上述方案還是存在問題,線上程A自己的uuid剛好與redis的uuid比較完,正準備刪除的時候過期,這時候B執行緒進入,此時的redisuuid就不是執行緒A的了,此時還是會存在刪除別人鎖的問題。
這是由於在拿鎖、比較鎖和刪除鎖的過程中並不是原子性的操作。解決此問題可以使用lua表示式
到此這篇關於Redis分散式鎖解決秒殺超賣問題的文章就介紹到這了,更多相關Redis秒殺超賣內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45