日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分布式锁的实现概述

發布時間:2025/6/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式锁的实现概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

做慣了講究響應速度的微小化web服務,當有人給我講分布式鎖時深刻懷疑說這個名詞的哥們要么準備給我挖坑,要么自己把架構玩脫了已經掉進了坑里。這個東西雖然常見,但是稍有不慎就會掉坑里出不來。

???? 系統做的越多現在越來越害怕那種千鈞一發的系統,動輒每秒單例服務響應web業務請求百萬上下,這樣的實現功力確實佩服,就是不知道服務宕機時的瞬時數據在恢復時能不能達到同樣的速度了。從概率上來講,服務器越多,發生問題的概率越小,再加上自己常人天資,最希望的就是一臺服務器只處理一個請求-------當然這種開發富貴病也得治,不過那種炫技式的服務設計架構,除非是窮人家需要榨干服務器所有的算力,否則還是花點錢,多買幾臺服務器均攤開的好。可以照著秒發百萬設計,但是最好貼著每秒負載上千的去玩。

?? 扯遠了。使用分布式鎖就為了保證服務間數據一致性,那么這個鎖怎么進行分布式?

?? 一

????? 把鎖設置在各個服務點上就扯淡了,如果不講究響應時間并且不擔心系統復雜度,可以這么玩。首先在收到服務請求時發給所有同服務點發出廣播,要求占用資源點,要求其他服務點暫停對這個資源點的請求。如果資源數據占用粒度比較小,那么還好,其他服務點可以采用隊列堆積對著被占用的資源數據其中鎖定的那一部分的請求,比如某個指定賬戶的積分。如果沒有粒度區分,那就悲劇了,需要把所有資源的請求都堆積起來。請求完成,再發一次通知,并且還需要從堆積的請求里按照一定規則挑出新的請求服務點以避免死鎖。如果不幸占用資源的服務掛掉了,還要再加一層根據時間條件的自旋鎖機制,估計這樣實現的話工程師都要哭了。所以,就別扯淡了。

?二

把鎖設置在數據資源服務本身上。比如直接利用關系型數據庫的原子性事務或者redis自身的鎖機制,這種是常見的利用方式,關系型數據庫的響應速度可能會慢點,redis的響應速度相對好些。不過這種鎖,尤其是關系型數據庫有鎖粒度過大的問題,通常是表級別鎖,對并發性影響大,不適用于那種分分鐘百萬上下的。redis提供了一個分布式鎖的算法https://redis.io/topics/distlock。

請求隊列。將所有請求都放置到 一個隊列中先進先出,串行。這個方法雖然省事,但是不適用高響應系統大數據量系統,不然就是千鈞一發,系統一旦宕機,恢復數據時估計想打人。當然,為了提高響應速度可以依據一定規則對資源數據進行劃分,將請求隊列切分為多個,但是需要保證隊列間不能有請求資源交叉。

2和3的方式相結合,資源切分,請求歸隊,隊列再次切分,利用redis作為資源存儲,啟用redis的鎖算法,并且redis按照服務器進行數據存儲劃分而不是在一臺服務器進行分片。2的架構在請求數未突破redis的瓶頸時還好,一旦突破則性能會陡峭下降。所以此方案單次響應時間相比較2會長一些,但是支持的吞吐量不會完全受限于redis的性能瓶頸并且可以通過隊列服務增加來犧牲部分響應速度來降低性能下降速度,為redis劃分負荷增加處理時間。當然,架構的層級劃分也挺嚇人,價格也挺好看的................

1到4都是可切分的,但是有些數據是不太容易切分的。容許請求失敗的比如秒殺類的業務可以做切分,在子資源點數據不足時直接拒絕請求就可以了。但是面向成千上萬用戶發送積分并且積分有所預算的就不成了。當然,這個也可以切分,但是有后遺癥,如果被請求的子節點數據不足,那么這個請求是不能認為失敗的,需要將請求路由到資源充足的節點上,那么就需要在隊列請求分發前進行一次預占用處理,保證請求真正發出時目標資源點的數據是能夠滿足的,如果不能還需要進行查找再進行路由。還有一種比較坑的情況,就是各個子節點的資源都不足,但是總量是滿足,那么還需要繼續再添加一層數據占用處理保障,對于突破子節點資源量的請求進行一套單獨的處理,并且還需要選擇預占用的節點進行預占用處理。

總結:

???? 伴隨著一種種情況,似乎CAP原則大顯神威,但是情況沒有絕對,從企業的角度出發,好的用戶體驗是一方面,但是數據的正確性則更加重要一些。可以通過對業務進行細致分析嘗試將單次請求的資源需要量進行一些限制,反常則是妖,大多數的時候用戶的需求還是常見,能夠被系統一種較小的代價去實現出來。特定用戶高頻并且對資源大量請求的情況大多數來自與爬蟲或者機器人,人類的信息單位處理能力還是有限。當然,一些特定領域的信息處理則要另當別論。

本文轉載自:https://blog.csdn.net/xqj198404/article/details/81124177

轉載于:https://www.cnblogs.com/xiyunjava/p/9346751.html

總結

以上是生活随笔為你收集整理的分布式锁的实现概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美丰满老妇性猛交 | 性色欲情网站iwww九文堂 | 午夜两性视频 | 狠狠躁18三区二区一区 | 日韩小视频在线观看 | 免费看污黄网站在线观看 | av鲁丝一区鲁丝二区鲁丝三区 | 丁香六月久久 | 国产欧美三级 | 亚洲男人第一网站 | 亚洲精品福利在线观看 | 一本色道久久88综合日韩精品 | 亚洲国产精品成人无久久精品 | 成人在线观看91 | 日韩插插 | 蜜桃视频免费网站 | 欧美一区一区 | 自拍亚洲欧美 | 91精品国产自产精品男人的天堂 | xvideos永久免费入口 | 免费成人美女在线观看. | www四虎| 农村搞破鞋视频大全 | 法国少妇愉情理伦片 | 涩涩的视频在线观看 | 99热一区 | 色老板最新地址 | 亚洲人视频 | 国产精品一区二区三区免费观看 | 999精品 | 激情噜噜| 人人妻人人澡人人爽 | 国产毛片毛片毛片毛片毛片毛片 | 亚洲综合在线一区 | 亚洲va欧美 | 久草福利资源在线观看 | 国产精品国产精品国产专区不卡 | 日韩欧美福利 | 国产日韩精品中文字无码 | 国产a精品 | 欧美精品久久久久久久免费 | 国产精品成熟老女人 | www噜噜噜| 免费的av网站 | 国产精品夜夜嗨 | 大又大粗又爽又黄少妇毛片 | 超碰.com| 日本少妇大战黑人 | av不卡免费在线 | 海量av| 国产精品毛片久久 | 综合久久综合久久 | 国产精品伦子伦免费视频 | 乱色视频 | 天堂视频一区二区 | 少妇精品无码一区二区免费视频 | 琪琪色综合网 | 成人一级影片 | 亚洲一区二区三区四区五区六区 | www.sesehu| 韩国三级在线 | 中文成人无字幕乱码精品区 | 久操视频免费在线观看 | 9人人澡人人爽人人精品 | 男女日屁视频 | 久久久久久久毛片 | 亚洲a黄 | 国产精品久久久久久久久免费桃花 | 日韩色吧 | 午夜在线视频播放 | 精产国品一二三区 | 亚洲综合色吧 | aaa欧美| 成人一级影视 | 黄色顶级片 | 99久久精品国产毛片 | 日日日网站 | 国产精伦 | 都市激情自拍 | 新久草视频 | 免费观看成人鲁鲁鲁鲁鲁视频 | 久久美女精品 | 91在线亚洲 | 一级α片免费看刺激高潮视频 | 欧美黄色录像片 | 制服诱惑一区二区 | 少妇性l交大片免潘金莲 | 免费观看久久久 | 一级特黄肉体裸片 | 国产精品手机在线观看 | 男女草逼 | 国产精品高潮av | 亚洲精品欧美日韩 | 免费在线精品视频 | 新狠狠干 | 亚洲欧美天堂网 | 男女操操| 在线不卡一区二区 | 四虎免费av |