zookeeper 實現分布式鎖

2021-09-27 13:18:17 字數 1344 閱讀 9721

com.101tec

zkclient

0.10

public inte***ce extlock
3、

public abstract class zookeeperabstractlock implements extlock  else 

} // 獲取鎖

abstract boolean trylock();

// 等待鎖

abstract void waitlock();

public void unlock()

}}

4、實現 獲取鎖 等待鎖

public class zookeeperdistrbutelock extends zookeeperabstractlock  catch (exception e) 

} @override

void waitlock()

}public void handledatachange(string arg0, object arg1) throws exception

};// 註冊事件通知

zkclient.subscribedatachanges(lockpath, izkdatalistener);

if (zkclient.exists(lockpath)) catch (exception e)

} // 監聽完畢後,移除事件通知

zkclient.unsubscribedatachanges(lockpath, izkdatalistener);

}}

5、呼叫類

public class ordernumgenerator  catch (exception e) 

******dateformat simpt = new ******dateformat("yyyy-mm-dd-hh-mm-ss");

return simpt.format(new date()) + "-" + ++count;

}}

public class orderservice implements runnable 

public void getnumber() catch (exception e) finally

} public static void main(string args)

}}

呼叫main測試下就好,發現生產的 number 沒有重複的

不要強制關閉控制台,會導致通知延遲。

Zookeeper實現分布式鎖

zookeeper實現分布式鎖 實現分布式環境下同步鎖的實現 author hao.wang date 2017 1 20 15 43 public class distributelockdemo implements watcher catch ioexception e catch inter...

Zookeeper實現分布式鎖

curatorframework提供的方法 方法名描述 create 開始建立操作,可以呼叫額外的方法 比如方式mode 或者後台執行background 並在最後呼叫forpath 指定要操作的znode delete 開始刪除操作.可以呼叫額外的方法 版本或者後台處理version or bac...

Zookeeper實現分布式鎖

一 分布式鎖介紹 分布式鎖主要用於在分布式環境中保護跨程序 跨主機 跨網路的共享資源實現互斥訪問,以達到保證資料的一致性。二 架構介紹 在介紹使用zookeeper實現分布式鎖之前,首先看當前的系統架構圖 解釋 左邊的整個區域表示乙個zookeeper集群,locker是zookeeper的乙個持久...