Zookeeper實現分布式鎖

2021-07-26 07:37:19 字數 1557 閱讀 5007

zookeeper實現分布式鎖

* 實現分布式環境下同步鎖的實現

* * @author hao.wang

* @date

2017/1/20

15:43

*/public

class

distributelockdemo

implements

watcher

} catch (ioexception e) catch (interruptedexception e) catch (keeperexception e)

}@override

public

void

process(watchedevent event)

}/**

* 獲取鎖的方法

*/public

void

lock()

try catch (keeperexception e) catch (interruptedexception e)

//等待並獲取鎖

}/**

* 釋放鎖操作的方法

*/public

void

unlock() catch (interruptedexception e) catch (keeperexception e)

}private

boolean

trylock()

//否則的話,監聽比自己小的節點 locks/lock_0000000003

string submyznode = myzonode.substring((myzonode.lastindexof("/") + 1));

waitnode = subnodes.get(collections.binarysearch(subnodes, submyznode) - 1);// 獲取比當前節點小的節點

} catch (keeperexception e) catch (interruptedexception e)

return

false;

}private

boolean

waitlock(string lower, long waittime) throws keeperexception, interruptedexception

return

true;

}public

static

void

main(string args) catch (interruptedexception e)

};executorservice.execute(runnable);

}executorservice.shutdown();}}

Zookeeper實現分布式鎖

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

Zookeeper實現分布式鎖

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

Zookeeper實現分布式鎖

zookeeper分布式鎖 1 分布式鎖 分布式鎖在一組程序之間提供互斥機制,任何時刻只有乙個程序可以持有鎖,持有鎖的程序就是系統的 領導者 分布式鎖分為兩種 獨佔鎖和共享鎖 獨佔鎖 所有嘗試獲取鎖的客戶端,最終只有乙個可以成功獲得鎖 共享鎖 所有嘗試獲取鎖的客戶度,最終都會被執行,只是有個全域性時...