在同一個jvm進程中時,能夠使用JUC提供的一些鎖來解決多個線程競爭同一個共享資源時候的線程安全問題,可是當多個不一樣機器上的不一樣jvm進程共同競爭同一個共享資源時候,juc包的鎖就無能無力了,這時候就須要分佈式鎖了。常見的有使用zk的最小版本,redis的set函數,數據庫鎖來實現,本節咱們談談使用zookeeper的序列節點機制來實現一個分佈式鎖。redis
首先咱們先來看看使用zk實現分佈式鎖的原理,在zk中是使用文件目錄的格式存放節點內容,其中節點類型分爲:數據庫