ZooKeeper和Reids做分布式锁的区别?

Reids:

  1. Redis只保证最终一致性,副本间的数据复制是异步进行(Set是写,Get是读,Reids集群一般是读写分离架
    构,存在主从同步延迟情况),主从切换之后可能有部分数据没有复制过去可能会 **「丢失锁」**情况,故强一
    if redis.call("get", KEYS1)==ARGV1 then
    return redis.call("del", KEYS1)
    else
    return 0
    end
    致性要求的业务不推荐使用Reids,推荐使用zk。
  2. Redis集群各方法的响应时间均为最低。随着并发量和业务数量的提升其响应时间会有明显上升(公网集群影
    响因素偏大),但是极限qps可以达到最大且基本无异常
    ZooKeeper:
  3. 使用ZooKeeper集群,锁原理是使用ZooKeeper的临时顺序节点,临时顺序节点的生命周期在Client与集群的
    Session结束时结束。因此如果某个Client节点存在网络问题,与ZooKeeper集群断开连接,Session超时同样
    会导致锁被错误的释放(导致被其他线程错误地持有),因此ZooKeeper也无法保证完全一致。
  4. ZK具有较好的稳定性;响应时间抖动很小,没有出现异常。但是随着并发量和业务数量的提升其响应时间和
    qps会明显下降。
    总结:
  5. Zookeeper每次进行锁操作前都要创建若干节点,完成后要释放节点,会浪费很多时间;
  6. 而Redis只是简单的数据操作,没有这个问题。
相关推荐
2603_954708315 小时前
如何进一步优化微能网协调控制箱的架构优势
大数据·数据库·人工智能·分布式·架构
做运维的阿瑞5 小时前
Terraform 循环与动态资源:count、for_each 与 dynamic
云原生·云计算·terraform
一条大祥脚17 小时前
【CS336】lecture7 多卡|通信架构|集合通信|NCCL|通信原语|torch.distributed
分布式·架构·nccl·多机多卡·集合通信
程序员梅雨19 小时前
ZooKeeper面经总结
java·大数据·linux·分布式·后端·zookeeper·中间件
张洛闻Eren20 小时前
Ansible【第一课】:Ansible介绍
运维·数据库·云原生·kubernetes·github·ansible
我是人✓20 小时前
Git入门:从零开始掌握分布式版本控制
分布式·git
杰克尼21 小时前
Kubernetes
云原生·容器·kubernetes
码上上班21 小时前
基于 K3s 的微服务容器化与 GitOps 持续交付平台
微服务·云原生·架构
张洛闻Eren1 天前
Ansible【第二课】:实施 Ansible Playbook
linux·运维·服务器·云原生·kubernetes·k8s·ansible
做运维的阿瑞1 天前
Terraform 入门实战:安装与实施
云原生·云计算·terraform