使用zookeeper实现分布式共享锁
?
?
?
?
测试结果:
/locks/test1_lock_0000004356 is created /locks/test1_lock_0000004356==test1_lock_0000004356Thread 8 /locks/test1_lock_0000004356 get lock true/locks/test2_lock_0000004357 is created /locks/test2_lock_0000004359 is created /locks/test2_lock_0000004358 is created /locks/test2_lock_0000004363 is created /locks/test2_lock_0000004361 is created /locks/test2_lock_0000004360 is created /locks/test2_lock_0000004362 is created /locks/test2_lock_0000004366 is created /locks/test2_lock_0000004365 is created /locks/test2_lock_0000004364 is created /locks/test2_lock_0000004357==test2_lock_0000004357Thread 14 /locks/test2_lock_0000004357 get lock trueThread 14 runningunlock /locks/test2_lock_0000004357/locks/test2_lock_0000004358==test2_lock_0000004357/locks/test2_lock_0000004361==test2_lock_0000004357/locks/test2_lock_0000004359==test2_lock_0000004357/locks/test2_lock_0000004362==test2_lock_0000004357Thread 12 waiting for /locks/test2_lock_0000004360/locks/test2_lock_0000004366==test2_lock_0000004357Thread 18 waiting for /locks/test2_lock_0000004357/locks/test2_lock_0000004363==test2_lock_0000004357Thread 18 runningunlock /locks/test2_lock_0000004358Thread 13 waiting for /locks/test2_lock_0000004362/locks/test2_lock_0000004365==test2_lock_0000004358Thread 16 waiting for /locks/test2_lock_0000004361Thread 19 waiting for /locks/test2_lock_0000004358/locks/test2_lock_0000004360==test2_lock_0000004358Thread 15 waiting for /locks/test2_lock_0000004365/locks/test2_lock_0000004364==test2_lock_0000004358Thread 11 waiting for /locks/test2_lock_0000004364Thread 20 waiting for /locks/test2_lock_0000004359Thread 19 runningunlock /locks/test2_lock_0000004359Thread 17 waiting for /locks/test2_lock_0000004363Thread 20 runningunlock /locks/test2_lock_0000004360Thread 12 runningunlock /locks/test2_lock_0000004361Thread 16 runningunlock /locks/test2_lock_0000004362Thread 13 runningunlock /locks/test2_lock_0000004363Thread 17 runningunlock /locks/test2_lock_0000004364Thread 11 runningunlock /locks/test2_lock_0000004365Thread 15 runningunlock /locks/test2_lock_0000004366min: 506max: 1481avg: 968err: 0===Thread 8 runningunlock /locks/test1_lock_0000004356?
关于zookeeper的很好的文章:
https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
这个分布式共享锁就是参考这篇文章实现的。
来自:http://my.oschina.net/shenxueliang/blog/135865