转载 http://www.chaozh.com/whats-bad-in-zookeeper-design/
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实现:实现比较简单,性能 高,但是可靠性难以维护 Zookeeper实现:实现 简单,可靠性 高,性能比redis略...
1. TBSchedule ...不过看自己项目需求把 TBSchedule和uncode-schedule基于zookeeper 不用数据库 总之每个框架有各自的优缺点,需求自己略做验证。 附件中有项目的下载地址 可以随时跟新到最新版本和资料。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。 本文档为单机部署和集群部署,带详细目录。
4_主流定时任务框架优缺点和什么是分布式定时任务.mp4 5_环境搭建总体流程.mp4 6_前期准备-JDK.mp4 7_前期准备-Maven.mp4 8_前期准备-MySQL.mp4 9_前期准备-Zookeeper.mp4 10_知识点检测与小结.mp4 11_Elastic-Job...
子模块-文件管理模块 Hos服务核心模块文件管理模块开发,包含Bucket的增删改查以及文件的增删改查操作,本节会通过zookeeper实现分布式锁,保证文件及文件夹的一致性。 12-1 Bucket管理模块开发 12-2 HDFS和HBASE...
4、后端秒杀业务逻辑,基于Redis 或者 Zookeeper 分布式锁,Kafka 或者 Redis 做消息队列,DRDS数据库中间件实现数据的读写分离。 优化思路 1、分流、分流、分流,重要的事情说三遍,再牛逼的机器也抵挡不住高级别的...
5、Redis 和 Zookeeper 分别是如何实现分布式锁的?优缺点各是什么? 6、目前线上业务的 Redis 使用了什么部署架构?了解哨兵是如何保证 Redis 高可用的吗?知道哨兵架构下 Master 节点的选举流程吗? 7、是否了解...
java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集: JAVA核心知识点整理-282页 Java与哈希算法.docx Java中Lambda表达式的使用....面试题:Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点.doc
4、后端秒杀业务逻辑,基于Redis 或者 Zookeeper 分布式锁,Kafka 或者 Redis 做消息队列,DRDS数据库中间件实现数据的读写分离。 spring-boot-seckill分布式秒杀系统优化思路 1、分流、分流、分流,重要的事情说三...
4、后端秒杀业务逻辑,基于Redis 或者 Zookeeper 分布式锁,Kafka 或者 Redis 做消息队列,DRDS数据库中间件实现数据的读写分离。 优化思路 1、分流、分流、分流,重要的事情说三遍,再牛逼的机器也抵挡不住高级别的...
分布式锁 分布式事务 分布式会话 高可用架构 高可用系统 如何设计一个高可用系统? 限流 熔断 如何进行熔断? 熔断框架都有哪些?具体实现原理知道吗? 降级 如何进行降级? 微服务架构 Spring Cloud 微服务架构 ...
分布式锁 分布式事务 分布式会话 高可用架构 高可用系统 如何设计一个高可用系统? 限流 熔断 如何进行熔断? 熔断框架都有哪些?具体实现原理知道吗? 降级 如何进行降级? 微服务架构 Spring Cloud 微服务架构 ...
JAVA基础,JVM,Java集合,多线程,Spring系列,微服务,网络,日志,Zookeeper,分布式缓存,数据结构,数据库,云计算,设计模式,等等等,还有很多,一份超级全的知识整理文档,最大的缺点就是页数太多,怕你坚持...
180多页面试题,前前后后不间断的更新了两年,准备换工作时,总是拿来看看,有比较好的面试题,也不间断的更新,面试题目录如下: 【基础】面向对象的特征有哪些方面 13 ...4、ZooKeeper在大型分布式系统中的应用 189
基于⼤数据平台数据分析技术选型调研 技术选型调研 ⼤⽅向任务 分布式平台 选出⼏个可⾏的⽅案 分析优缺点 任务细分: 数据源存储的问题 ⽀持分布式的深度学习组件 业内端到端的解决⽅案有哪些——可借鉴的架构⽅案 ...
HBASE是bigTable,(源代码是Java编写)的开源版本,是Apache Hadoop的数据库,是建立在hdfs之上,被设计用来提供高可靠性,高性能、列存储、可伸缩、多版本,的Nosql的分布式数据存储系统,实现对大型数据的实时,...
文章目录: 基础知识 为什么要用 Dubbo? Dubbo 是什么? Dubbo 的使用场景有哪些? Dubbo 核心功能有哪些?...Dubbo 支持哪些协议,它们的优缺点有哪些? 设计模式 Dubbo 用到哪些设计模式? ...... 等等
a)Puppet b)Pdsh c)Cloudera Manager d)Zookeeper 答案 ABD 具体可查看什么是 Zookeeper,Zookeeper 的作⽤是什么,在 Hadoop 及 hbase 中具体作⽤是什么。 1. 1. Client 端上传⽂件的时候下列哪项正确 a)数据经过 ...
004微服务的缺点 第2章 Linux使用 005Linux 简介 006Linux 与 Windows 比较 007安装 Linux 008Linux 远程控制管理 009Linux 目录结构 010操作文件目录 011系统管理命令 012开关机命令 013压缩命令 014Linux 编辑...
004微服务的缺点 第2章 Linux使用 005Linux 简介 006Linux 与 Windows 比较 007安装 Linux 008Linux 远程控制管理 009Linux 目录结构 010操作文件目录 011系统管理命令 012开关机命令 013压缩命令 ...