1、客户端发起加锁请求
2、zookeeper根据请求顺序在锁集合中创建分布式锁顺序节点。顺序节点命名规范为:规定字符串 + 顺序号。
3、加锁判断,客户端进行加锁判断,如果判断是第一个顺序节点,加锁成功。
4、加锁判断,客户端进行加锁判断,如果不是第一个顺序节点,则通过ZK提供的api对当前顺序节点上一个节点进行监控。
5、加锁后事务处理,别的客户端等待中。
6、释放锁,事务处理完成后,执行释放锁操作,ZK删除掉当前客户端对应的顺序节点。同时ZK会激活监听当前顺序节点的其它客户端顺序节点,其它顺序节点激活后重新进行加锁判断,如果是集合中第一个节点,获取锁,否则继续监听。