2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

為什么會有分布式鎖?分布式鎖實現方案

更新時間:2023-06-07 來源:黑馬程序員 瀏覽量:

分布式鎖是控制分布式系統之間同步訪問共享資源的一種方式。分布式環境下會出現資源競爭的地方都需要分布式鎖的協調。

分布式鎖的作用:在整個系統提供一個全局、唯一的鎖,在分布式系統中每個系統在進行相關操作的時候需要獲取到該鎖,才能執行相應操作。

服務以多實例形式部署,形成集群。每一個實例都會有一個自己的JVM運行環境,因此即便是同一個用戶,如果并發的發起了多個請求,由于**請求進入了多個JVM,就會出現多個鎖對象(用戶id對象),自然就有多個鎖監視器**。此時就會出現每個JVM內部都有一個線程獲取鎖成功的情況,沒有達到互斥的效果,并發安全問題就可能再次發生了:

JVM鎖的缺點

可見,在集群環境下,JVM提供的傳統鎖機制就不再安全了。

那么該如何解決這個問題呢?

解決這個問題讓每個實例去使用各自的JVM內部鎖監視器,而是應該在多個實例外部尋找一個鎖監視器,多個實例爭搶同一把鎖。像這樣的鎖,就稱為分布式鎖。

分布式鎖

分布式鎖可以根據以下幾個方案實現:

- 基于數據庫表

操作數據庫需要較大的開銷,性能差

- 基于緩存實現分布式鎖(redis)

- 基于Zookeeper實現分布式鎖

- 基于consul實現分布式鎖

- 基于etcd實現分布式鎖


分享到:
在線咨詢 我要報名
和我們在線交談!