一 分布式鎖基礎

2022-07-07 19:42:13 字數 797 閱讀 4183

分布式鎖是控制分布式系統之間同步訪問共享資源的一種方式。

在分布式系統中,常常需要協調他們的動作。如果不同的系統或是同乙個系統的不同主機之間共享了乙個或一組資源,那麼訪問這些資源的時候,往往需要互斥來防止彼此干擾來保證一致性,這個時候,便需要使用到分布式鎖。簡單的說在分布式系統下,有效的資源保證一致性。

使用redis的鍵值對方式作為鎖,高效的分布式鎖有redission等

快取穿透

指查詢乙個一定不存在的資料,由於快取是不命中,將去查詢資料庫,但是資料庫也無此記錄,我們沒有將這次查詢的null寫入快取,這將導致這個不存在的資料每次請求都要到儲存層去查詢,失去了快取的意義

風險:利用不存在的資料進行攻擊,資料庫瞬時壓力增大,最終導致崩潰

解決:null結果快取,並加入短暫過期時間

快取雪崩

快取雪崩是指在我們設定快取時key採用了相同的過期時間,導致快取在某一時刻同時失效,請求全部**到db,db瞬時壓力過重雪崩。

解決:原有的失效時間基礎上增加乙個隨機值,比如1-5分鐘隨機,這樣每乙個快取的過期時間的重複率就會降低,就很難引發集體失效的事件。

快取擊穿

對於一些設定了過期時間的key,如果這些key可能會在某些時間點被超高併發地訪問,是一種非常「熱點」的資料。

如果這個key在大量請求同時進來前正好失效,那麼所有對這個key的資料查詢都落到db,我們稱為快取擊穿。

解決:加鎖。大量併發只讓乙個去查,其他人等待,查到以後釋放鎖,其他人獲取到鎖,先查快取,就會有資料,不用去db

一 分布式鎖

drop table ifexists method lock create table method lock id int 11 unsigned not null auto increment comment 主鍵 method name varchar 64 not null comment...

分布式儲存架構一 分布式儲存概念

分布式儲存系統是由大量廉價普通pc伺服器通過internet互聯,對外作為乙個整體提供服務的系統。它的規模大且成本低。分布式儲存系統的特性 分布式儲存系統挑戰主要在於資料 狀態資訊的持久化,要求在自動遷移 自動容錯 併發讀寫的過程中保證資料的一致性。資料分布均勻 資料一致性 容錯能力 事務與併發控制...

分布式鎖 3 分布式鎖租約續期

redis分布式鎖在加鎖的時候,我們一般都會給乙個鎖的過期時間 ttl 這是為了防止加鎖後client宕機,鎖無法被釋放的問題。但是所有這種姿勢的用法都會面臨同乙個問題,就是沒發保證client的執行時間一定小於鎖的ttl。雖然大多數程式設計師都會樂觀的認為這種情況不可能發生,但是各種異常情況都會導...