ZooKeeper 分布式锁案例
什么叫做分布式锁呢?
比如说 “进程1” 在使用该资源的时候,会先去获得锁,"进程 1"获得锁以后会对该资源保持独占,这样其他进程就无法访问该资源,"进程 1"用完该资源以后就将锁释放掉,让其他进程来获得锁,那么通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。
那么我们把这个分布式环境下的这个锁叫作分布式锁。
分布式锁案例分析:
客户端访问集群,客户端访问,常见临时的带序号的节点,序号最小的拿到资源(加锁),走业务逻辑,解锁就是删除改节点。
所以每个客户端创建的节点都会判断自己是不是序号最小的节点,如果不是就监听其前一个节点。
1、原生 Zookeeper 实现分布式锁案例
1.1、分布式锁实现
测试类,主要模拟十个线程进行抢占锁资源
import com.msb.zookeeper.config