日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文分享自華為云社區(qū)《分布式系統(tǒng)中如何實現(xiàn)臨界資源的互斥訪問-云社區(qū)-華為云》,作者:華為云PaaS服務小智。

網(wǎng)絡時代,購物、社交等之前只能在線下進行的活動,如今都可以在網(wǎng)絡上完成。為了促進消費,電商網(wǎng)、網(wǎng)絡店鋪經(jīng)常推出商品限定數(shù)量內(nèi)的“秒殺”,“搶購”活動,類似的臨界資源訪問還有我們生活中常見的微信多人搶紅包。這種臨界資源,多人訪問的情況,如何保證避免一個資源被多人(一人以上)互斥訪問呢?

臨界資源

多道程序系統(tǒng)中存在許多進程,它們共享各種資源,然而有很多資源一次只能供一個進程使用。一次僅允許一個進程使用的資源稱為臨界資源。

上面我們提到的在搶購中對商品提交訂單,微信中打開多人紅包都屬于這種臨界資源的訪問,一次只允許一個進程使用。

臨界資源互斥訪問

分布式互斥是隨著分布式系統(tǒng)的出現(xiàn)而出現(xiàn)的,并隨著分布式系統(tǒng)理論發(fā)展而發(fā)展。在分布式系統(tǒng)中,很多進程能夠在微觀上并行執(zhí)行。但由于共享資源的有限性,以及全局數(shù)據(jù)要求的一致性,一些臨界資源的訪問需要以互斥的方式實現(xiàn)同步。

JAVA原生鎖

在傳統(tǒng)單機部署的情況下,可以使用Java并發(fā)處理相關的API(如ReentrantLock或synchronized)進行互斥控制。這種Java提供的原生鎖機制可以保證在同一個Java虛擬機進程內(nèi)的多個線程同步執(zhí)行,避免出現(xiàn)無序現(xiàn)象。

但在互聯(lián)網(wǎng)場景,特別是搶購活動中,隨著整個系統(tǒng)的并發(fā)訪問飆升,需要多臺機器并發(fā)運行,以應對用戶井噴式訪問,假設此時多個用戶的請求同時到來,但落在了不同的機器上,雖然這兩個請求是可以同時執(zhí)行,但是因為兩個機器運行在兩個不同的Java虛擬機里面,他們加的鎖只對屬于自己Java虛擬機里面的線程有效,對于其他Java虛擬機的線程是無效的。因此,Java提供的原生鎖機制在多機部署場景下失效了,這是因為兩臺機器加的鎖不是同一個鎖(兩個鎖在不同的Java虛擬機里面),這樣便會出現(xiàn)庫存超賣的現(xiàn)象。

分布式鎖

基于存在的現(xiàn)狀,我們只要保證多臺機器加的鎖是同一個鎖,用加鎖的方式對某種資源進行順序訪問控制。這就需要分布式鎖登場了。

分布式鎖是一種解決分布式臨界資源并發(fā)讀寫的一種技術,對分布式應用加鎖,能夠避免出現(xiàn)庫存超賣及無序訪問等現(xiàn)象。

 

分布式鎖的思路是:在整個系統(tǒng)提供一個全局、唯一的獲取鎖的“東西”,然后每個系統(tǒng)在需要加鎖時,都去問這個“東西”拿到一把鎖,這樣不同的系統(tǒng)拿到的就可以認為是同一把鎖。

當前分布式加鎖主要有三種方式:(磁盤)數(shù)據(jù)庫、緩存數(shù)據(jù)庫、Zookeeper。

用 redis 實現(xiàn)分布式鎖

使用Redis類型的緩存實例實現(xiàn)分布式加鎖,有幾大優(yōu)勢:

• 加鎖操作簡單,使用SET、GET、DEL等幾條簡單命令即可實現(xiàn)鎖的獲取和釋放。

• 性能優(yōu)越,緩存數(shù)據(jù)的讀寫優(yōu)于磁盤數(shù)據(jù)庫與Zookeeper。

如下圖中所示,使用redis的set方法即可實現(xiàn)對臨界資源加鎖,點擊此獲取全量代碼 。

 

使用redis的del方法即可實現(xiàn)鎖的釋放。

 

相對于傳統(tǒng)redis,如今各大云廠商也都推出了redis云服務,以即開即用、安全可靠、彈性擴容、便捷管理等特點受到軟件開發(fā)企業(yè)和開發(fā)者的歡迎。

參考資料

李美安. 普適分布式互斥算法及應用[D]. 電子科技大學, 2006.

分享到:
標簽:分布式
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定