zookeeper 分布式锁理解

基本命令

node节点

  • create /路径 节点数据 // 创建持久节点 默认
  • create -s /路径 节点数据 // 创建顺序节点
  • create -e /路径 节点数据 // 创建临时节点

获取数据

  • get 路径 //如果是顺序节点要输入完整的路径 如get /node00000000001

watch 监视,,只能在get下设置

  • get 路径 1 // 设置监视

设置数据

  • set 路径 数据

创建子节点

  • create 父路径/子路径 节点数据

列出 子节点

  • ls 路径

节点状态
stat 路径

删除节点

  • rmr 路径 // 递归删除下面所有子节点
  • delete 路劲 //删除没有子节点的路径
Zookeeper 实现分布式锁的原理。。
举个例子:

我们有一个实现支付的微服务。因为使用量很大,我们使用集群将其部署在了服务器A 和服务器B 上面。。支付宝支付以后需要等待返回结果。。返回结果我们使用异步通知的方式。。这个时候可能会存在这种清空。我点支付的时候手抖,导致我发起了两次支付请求。。在分布式的环境下,第一次可能是服务器A处理请求,第二次是服务器B处理请求。就没有办法使用本地锁。。Zookeeper实现分布式锁的原理是,,服务器A和服务器B作为Zookeeper的客户端,同时创建相同的路径,创建临时节点Node,这样就只能有一个服务器创建成功。相当于获取到了锁。服务器A处理完成以后删除临时节点。相当于释放锁。。这样就可以保证,只有一個服務可以更新訂單表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值