`

zookeeper的缺点和分布式锁问题

 
阅读更多

转载 http://www.chaozh.com/whats-bad-in-zookeeper-design/

转载 https://mp.weixin.qq.com/s?__biz=MzI4MTY5NTk4Ng==&mid=2247489041&idx=1&sn=b58745994c0c98662e2330c966b5036f&source=41#wechat_redirect

 

1. API事务能力不足,不支持客户端发起事务性的多步骤操作 

2. 服务器无仲裁能力,ZK服务器端不能做基本的判断逻辑,必须都在客户端进行

    提供的api偏底层,client端代码难度也比较高

 

3. 回调机制受限,Znode上面watch仅支持触发一次回调,不支持定时过期失效

    watch机制的回调,只会通知一次,不保证成功,无重试

4. 可扩展性不足,ZK集群不支持在线动态添加机器或替换机器

    因为只有一个Leader,水平扩展并不能明显提升性能,因为只有1个Leader, zk机器节点越多,反而会导致通信和同步时间更长,性能可能会变差,zk集群的实际qps tps能力 是 几万 这个级别

5. Zab协议,协议在选举和发送环节都有优化空间

    zab的设计就是对网络及其敏感,假如管理双机房(双机房间网络抖动是常态),会因为抖动导致单机房不可用(因为只有一个Leader),即便在一个机房内(机房内经常会做路由调整),抖动也会导致leader重新选举,实际leader选举通常几十秒到几分钟,这会严重放大本来只有秒级的网络抖动

 

zk实现分布式锁的问题

1. zk提交类似于一个2PC过程,设置锁的性能会低于redis

2. zk leader一旦挂掉,设置锁就不可用(相对而言redis多个master节点都可以写)

3. 状态处理不正确,容易出现多个客户端持有锁或者释放不掉

分享到:
评论

相关推荐

    Redis分布式锁深度介绍.docx

    分布式锁释放方式多种多样,每种方式都有自己的优缺点,我们应该根据业务的具体需求,先择合适的实现。Redis实现:实现比较简单,性能 高,但是可靠性难以维护 Zookeeper实现:实现 简单,可靠性 高,性能比redis略...

    分布式任务调度框架 集合

    1. TBSchedule ...不过看自己项目需求把 TBSchedule和uncode-schedule基于zookeeper 不用数据库 总之每个框架有各自的优缺点,需求自己略做验证。 附件中有项目的下载地址 可以随时跟新到最新版本和资料。

    Zookeeper单机部署和集群部署文档.pdf

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。 本文档为单机部署和集群部署,带详细目录。

    Java分布式Elastic-Job和Quartz定时任务课程(1.6G)

    4_主流定时任务框架优缺点和什么是分布式定时任务.mp4 5_环境搭建总体流程.mp4 6_前期准备-JDK.mp4 7_前期准备-Maven.mp4 8_前期准备-MySQL.mp4 9_前期准备-Zookeeper.mp4 10_知识点检测与小结.mp4 11_Elastic-Job...

    Hbase+Spring boot实战分布式文件存储

    子模块-文件管理模块 Hos服务核心模块文件管理模块开发,包含Bucket的增删改查以及文件的增删改查操作,本节会通过zookeeper实现分布式锁,保证文件及文件夹的一致性。 12-1 Bucket管理模块开发 12-2 HDFS和HBASE...

    【spring-boot-seckill分布式秒杀系统 v1.0】从0到1构建的java秒杀系统源码+安装说明

    4、后端秒杀业务逻辑,基于Redis 或者 Zookeeper 分布式锁,Kafka 或者 Redis 做消息队列,DRDS数据库中间件实现数据的读写分离。 优化思路 1、分流、分流、分流,重要的事情说三遍,再牛逼的机器也抵挡不住高级别的...

    四家二线大厂面经.pdf

    5、Redis 和 Zookeeper 分别是如何实现分布式锁的?优缺点各是什么? 6、目前线上业务的 Redis 使用了什么部署架构?了解哨兵是如何保证 Redis 高可用的吗?知道哨兵架构下 Master 节点的选举流程吗? 7、是否了解...

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集.zip

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集: JAVA核心知识点整理-282页 Java与哈希算法.docx Java中Lambda表达式的使用....面试题:Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点.doc

    spring-boot-seckill分布式秒杀系统 v1.0

    4、后端秒杀业务逻辑,基于Redis 或者 Zookeeper 分布式锁,Kafka 或者 Redis 做消息队列,DRDS数据库中间件实现数据的读写分离。 spring-boot-seckill分布式秒杀系统优化思路 1、分流、分流、分流,重要的事情说三...

    spring-boot-seckill分布式秒杀系统-其他

    4、后端秒杀业务逻辑,基于Redis 或者 Zookeeper 分布式锁,Kafka 或者 Redis 做消息队列,DRDS数据库中间件实现数据的读写分离。 优化思路 1、分流、分流、分流,重要的事情说三遍,再牛逼的机器也抵挡不住高级别的...

    javalruleetcode-advanced-java:高级Java

    分布式锁 分布式事务 分布式会话 高可用架构 高可用系统 如何设计一个高可用系统? 限流 熔断 如何进行熔断? 熔断框架都有哪些?具体实现原理知道吗? 降级 如何进行降级? 微服务架构 Spring Cloud 微服务架构 ...

    javalruleetcode-docs:文档

    分布式锁 分布式事务 分布式会话 高可用架构 高可用系统 如何设计一个高可用系统? 限流 熔断 如何进行熔断? 熔断框架都有哪些?具体实现原理知道吗? 降级 如何进行降级? 微服务架构 Spring Cloud 微服务架构 ...

    JAVA全栈等知识点全.zip

    JAVA基础,JVM,Java集合,多线程,Spring系列,微服务,网络,日志,Zookeeper,分布式缓存,数据结构,数据库,云计算,设计模式,等等等,还有很多,一份超级全的知识整理文档,最大的缺点就是页数太多,怕你坚持...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    180多页面试题,前前后后不间断的更新了两年,准备换工作时,总是拿来看看,有比较好的面试题,也不间断的更新,面试题目录如下: 【基础】面向对象的特征有哪些方面 13 ...4、ZooKeeper在大型分布式系统中的应用 189

    基于大数据平台数据分析技术选型调研.pdf

    基于⼤数据平台数据分析技术选型调研 技术选型调研 ⼤⽅向任务 分布式平台 选出⼏个可⾏的⽅案 分析优缺点 任务细分: 数据源存储的问题 ⽀持分布式的深度学习组件 业内端到端的解决⽅案有哪些——可借鉴的架构⽅案 ...

    Hbase.mmap

    HBASE是bigTable,(源代码是Java编写)的开源版本,是Apache Hadoop的数据库,是建立在hdfs之上,被设计用来提供高可靠性,高性能、列存储、可伸缩、多版本,的Nosql的分布式数据存储系统,实现对大型数据的实时,...

    Dubbo 是一款高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架

    文章目录: 基础知识 为什么要用 Dubbo? Dubbo 是什么? Dubbo 的使用场景有哪些? Dubbo 核心功能有哪些?...Dubbo 支持哪些协议,它们的优缺点有哪些? 设计模式 Dubbo 用到哪些设计模式? ...... 等等

    大数据面试题,唬住50k.pdf

    a)Puppet b)Pdsh c)Cloudera Manager d)Zookeeper 答案 ABD 具体可查看什么是 Zookeeper,Zookeeper 的作⽤是什么,在 Hadoop 及 hbase 中具体作⽤是什么。 1. 1. Client 端上传⽂件的时候下列哪项正确 a)数据经过 ...

    Java微服务架构l零从基础到精通高清视频教程全套 163课

    004微服务的缺点 第2章 Linux使用 005Linux 简介 006Linux 与 Windows 比较 007安装 Linux 008Linux 远程控制管理 009Linux 目录结构 010操作文件目录 011系统管理命令 012开关机命令 013压缩命令 014Linux 编辑...

    Java微服务架构163课

    004微服务的缺点 第2章 Linux使用 005Linux 简介 006Linux 与 Windows 比较 007安装 Linux 008Linux 远程控制管理 009Linux 目录结构 010操作文件目录 011系统管理命令 012开关机命令 013压缩命令 ...

Global site tag (gtag.js) - Google Analytics