av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

一分鐘實現(xiàn)分布式鎖

一、緣起

創(chuàng)新互聯(lián)服務(wù)項目包括恭城網(wǎng)站建設(shè)、恭城網(wǎng)站制作、恭城網(wǎng)頁制作以及恭城網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,恭城網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到恭城省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

分布式環(huán)境下,多臺機(jī)器上多個進(jìn)程對一個數(shù)據(jù)進(jìn)行操作,如果不做互斥,就有可能出現(xiàn)“余額扣成負(fù)數(shù)”,或者“商品超賣”的情況,如何實現(xiàn)簡易分布式鎖,對分布式環(huán)境下的臨界資源做互斥,是今天將要討論的話題。

二、互斥原理

原理:多個訪問方對同一個資源進(jìn)行操作,需要進(jìn)行互斥,通常是利用一個這些訪問方同時能夠訪問到的lock來實施互斥的。

例子1:同一個進(jìn)程內(nèi),多個線程的互斥,典型的場景是生產(chǎn)者消費者對同一個queue進(jìn)行操作時的互斥

方案:設(shè)定一個所有線程能夠訪問到的lock實施互斥

步驟:

(1)多個線程同時搶鎖

(2)只一個線程搶到,未搶到的阻塞,或下次再來搶

(3)搶到鎖的線程操作臨界資源

(4)操作完臨界資源后釋放鎖

例子2:同一個操作系統(tǒng)上,多個進(jìn)程的互斥,典型的場景是手機(jī)上多個APP對同一個文件進(jìn)行寫入互斥

方案:設(shè)定一個所有進(jìn)程能夠訪問到的lock實施互斥(例如文件inode,OS幫我們做了)

步驟:

(1)多個進(jìn)程同時搶鎖

(2)只一個進(jìn)程搶到,未搶到的阻塞,或下次再來搶

(3)搶到鎖的進(jìn)程操作臨界資源

(4)操作完臨界資源后釋放鎖

三、分布式環(huán)境下多進(jìn)程互斥

分布式環(huán)境下,多臺機(jī)器上多個進(jìn)程對一個數(shù)據(jù)進(jìn)行操作的互斥,例如同一個uid=123要避免同時進(jìn)行扣款。

根據(jù)上面的原理,先找一個多臺機(jī)器多個進(jìn)程可以同時訪問到的一個lock,例如redis。

步驟:

(1)多臺機(jī)器上多個進(jìn)程對這個鎖進(jìn)行爭搶,例如在緩存上同時進(jìn)行set key=123操作

(2)只有一個進(jìn)程會搶到這個鎖,即只有一個進(jìn)程對緩存set key=123能夠成功,不成功的進(jìn)程下次再來搶

(3)搶到鎖的進(jìn)程對余額進(jìn)行扣減

(4)扣減完成之后釋放鎖,即對緩存delete key=123

分布式環(huán)境下的互斥,搞定。

【本文為專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】


網(wǎng)頁標(biāo)題:一分鐘實現(xiàn)分布式鎖
當(dāng)前URL:http://uogjgqi.cn/article/cohejsd.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流