成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分布式鎖,再深一點!!

系統 Linux 分布式
在分布式環境下,怎么訪問臨界資源,是互聯網的一大難題。分布式鎖就是一種解決方法。

一、起因

分布式環境下,多臺機器上多個進程對一個數據進行操作,必然引起數據不一致的情況,比如“商品超賣”。那么在分布式環境下,怎么訪問臨界資源,是互聯網的一大難題。分布式鎖就是一種解決方法。

二、互斥原理

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

場景一

在同一個進程內,多個線程的互斥,我們可以通過加鎖來進行串行化訪問。

 

步驟:

  • 多個線程同時搶鎖
  • 只一個線程搶到,未搶到的阻塞,或下次再來搶
  • 搶到鎖的線程操作臨界資源
  • 操作完臨界資源后釋放鎖

畫外音:鎖是進程內的一個數據結構,將臨界資源的沖突轉變為對鎖結構的沖突。

場景二

在分布式環境下,進程內的鎖結構就無法作用于進程外了,所以多進程情況下怎么進行臨界資源的保護呢?

結合進程內鎖的機制,我們可以得出幾點條件:

  • 需要有一個特殊的數據結構,每個進程都能訪問
  • 同時只能一個進程訪問成功
  • 訪問成功的進程可以訪問臨界資源

畫外音:問題的關鍵在于找到同時只有一個進程訪問成功的外部存儲結構。

三、分布式鎖

既然分布式鎖的核心是選擇合適的外部存儲,那怎么選擇“合適”的存儲介質和存儲模型就是我們思考的核心了。

那分布式鎖用關系型存儲還是KV存儲?

從鎖的角度來看,我們對它要求不多,KV存儲足夠。這樣我們第一想到的就是Redis方案了,那是不是Redis方案就是最優方案呢?

Redis:單線程高性能的內存KV存儲方案。

  • 滿足所有進程都能訪問的數據結構
  • 單線程滿足只有一個進程能訪問成功(setnx命令)
  • 業務上保證set成功的進程進行臨界資源操作

 

步驟:

  • 多臺機器上多個進程對這個鎖進行爭搶,例如在緩存上同時進行set key=123操作
  • 只有一個進程會搶到這個鎖,即只有一個進程對緩存set key=123能夠成功,不成功的進程下次再來搶
  • 搶到鎖的進程對臨界資源進行操作
  • 扣減完成之后釋放鎖,即對緩存delete key=123

從功能上,Redis完美的實現了分布式鎖,那再深入一點。

 

  • MySQL能不能實現分布式鎖?
  • ZooKeeper實現分布式鎖和Redis實現的本質區別是什么?
  • 不同的架構選型,我們應該怎么選擇?

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2019-06-19 15:40:06

分布式鎖RedisJava

2018-07-17 08:14:22

分布式分布式鎖方位

2019-02-26 09:51:52

分布式鎖RedisZookeeper

2021-07-16 07:57:34

ZooKeeperCurator源碼

2022-08-04 08:45:50

Redisson分布式鎖工具

2018-11-27 16:17:13

分布式Tomcat

2020-04-23 11:18:14

Redis分布式

2021-11-26 06:43:19

Java分布式

2020-07-30 09:35:09

Redis分布式鎖數據庫

2021-07-06 08:37:29

Redisson分布式

2023-09-22 08:00:00

分布式鎖Redis

2022-01-06 10:58:07

Redis數據分布式鎖

2023-08-21 19:10:34

Redis分布式

2017-10-24 11:28:23

Zookeeper分布式鎖架構

2021-10-25 10:21:59

ZK分布式鎖ZooKeeper

2021-06-27 21:24:55

RedissonJava數據

2024-11-28 15:11:28

2021-07-08 09:21:17

ZooKeeper分布式鎖 Curator

2024-02-19 00:00:00

Redis分布式

2020-04-26 21:20:50

源碼面試Spring
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲在线免费观看 | 依人成人 | 69性欧美高清影院 | 中文字幕三区 | 亚洲视频在线观看一区二区三区 | 成人不卡视频 | 水蜜桃亚洲一二三四在线 | 亚洲成人高清 | 国产成人免费视频网站高清观看视频 | 精产国产伦理一二三区 | 午夜看电影在线观看 | h视频免费在线观看 | 在线成人 | 二区三区在线观看 | 精品国产免费人成在线观看 | 中文字幕一区二区三区日韩精品 | 久久91精品国产一区二区 | 国产精品夜色一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 亚洲一区二区三区在线播放 | 2022精品国偷自产免费观看 | 亚洲欧美日韩在线一区二区 | 亚洲激精日韩激精欧美精品 | 国产精品视频免费观看 | 97视频在线观看免费 | 五月婷婷激情网 | 91精品国产综合久久国产大片 | 国产精品精品3d动漫 | 亚洲精品粉嫩美女一区 | 精品国产乱码一区二区三 | 中文字幕高清免费日韩视频在线 | 日韩一二三区 | 美女黄视频网站 | 五月婷婷婷 | 中文av电影| 欧美一级欧美一级在线播放 | 国产精品a免费一区久久电影 | 欧美日在线 | 欧美xxxx色视频在线观看免费 | 成人免费一区二区三区牛牛 | 久久久久国产精品人 |