zookeeper分布式鎖實現

2021-09-05 12:32:01 字數 1572 閱讀 8793

業務場景: 避免重複訂單

專案依賴:

org.apache.curator

curator-recipes

2.7.0

lou**:

根據自己專案的實際可以進行一些優化,比如節點的切換,超時時間等。。。

@component

public class curatorlocktools

static ==== ", client.getstate());

lock = new interprocessmutex(client, propertyutil.getproperty("zk_lock_path"));

} /**

* @title: zklocksinfo

* @param @return 引數

* @return list返回型別

* @throws

*/

public static listzklocksinfo() catch (exception e)

return forpath;

} /**

* @param lock

* @title: dowithlock 建立鎖 -- 索取鎖,設定時長1s,如果獲取不到,則繼續獲取

* @param @param timeout

* @param @param unit

* @param @return 引數

* @return boolean 返回型別

* @throws

* */

public static boolean dowithlock(long timeout, timeunit unit, interprocessmutex newlock) catch (exception e)

return false;

} public static boolean dowithlock(long timeout, timeunit unit) ====",zklocksinfo());

return lock.acquire(timeout, unit);

} catch (exception e)

return false;

} /**

* @param lock

* @title: unlock 釋放鎖

* @param @return 引數

* @return boolean 返回型別

* @throws

*/

public static boolean unlock(interprocessmutex newlock) catch (throwable e)

return true;

} public static boolean unlock() catch (throwable e)

return true;

}}

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的乙個持久...