資料內(nèi)容:
4:分布式鎖
鎖:
不同線程間,操作一個資源,存在資源競爭,要用到鎖。
分布式鎖在進(jìn)程與進(jìn)程之間提供了一種互斥機(jī)制,在任何時刻,只有一個進(jìn)程可以持有鎖。
鎖服務(wù)可以分為兩類:
保持獨(dú)占:
得益于ZooKeeper為我們保證了數(shù)據(jù)的強(qiáng)一致性。
就是所有試圖來獲取這個鎖的客戶端,最終只有一個可以成功獲得這把鎖。
(實(shí)現(xiàn):大家都在某個節(jié)點(diǎn)下創(chuàng)建節(jié)點(diǎn),只有一個成功,其它都是失敗的)
控制時序:
就是所有視圖來獲取這個鎖的客戶端,最終都是會被安排執(zhí)行,
只是有個全局時序了。
(實(shí)現(xiàn):創(chuàng)建有編號節(jié)點(diǎn),查詢按編號排序,取最小的編號,就能得到鎖)