色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

什么時候需要分布式鎖

李中冰2年前23瀏覽0評論

什么時候需要分布式鎖?

分布式鎖也是鎖

在單體應用的時候,如果多個線程要訪問共享資源的時候,我們通常線程間加鎖的機制,在某一個時刻,只有一個線程可以對這個資源進行操作,其他線程需要等待鎖的釋放,Java中也有一些處理鎖的機制,比如synchronized。

而到了分布式的環境中,當某個資源可以被多個系統訪問使用到的時候,為了保證大家訪問這個數據是一致性的,那么就要求再同一個時刻,只能被一個系統使用,這時候線程之間的鎖機制就無法起到作用了,因為分布式環境中,系統是會部署到不同的機器上面的,那么就需要【分布式鎖】了。

什么時候需要使用分布式鎖

總結來看,當有多個客戶端需要訪問并操作同一個資源,還需要保持這個資源一致性的時候,就需要使用【分布式鎖】,讓多客戶端互斥的對共享資源進行訪問。

舉個例子來說明一下:

有多個批處理任務,兩臺機器同時處理,如果不加任何控制的話,很有可能同一個批處理被兩臺機器分別處理一遍;如果使用分布式鎖,在領取任務的時候,一個任務只會被一臺機器領到,這樣就不會造成任務的重復執行;

再多思考一些,如果A/B兩臺機器,任務1被A機器領取到進行處理,在處理到一半的時候,A機器掛掉了,那么這個批處理任務也就無法順利執行了,除非A機器可以恢復。

這時候就可以知道分布式鎖需要做哪些工作了排他性:在同一時間只會有一個客戶端能獲取到鎖,其它客戶端無法同時獲取;避免死鎖:鎖在一段時間內有效,超過這個時間后會被釋放(正常釋放或異常釋放);高可用:獲取或釋放鎖的機制必須高可用且性能佳。我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。

java線程鎖,什么時候需要分布式鎖