2 Star 65 Fork 54

柳诗妍 / Java-Interview-Advanced

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
135.md 1.26 KB
一键复制 编辑 原始数据 按行查看 历史
leelovejava 提交于 2020-06-04 02:11 . update 中间件之Zookeeper

135、一清二楚:再次回头对ZooKeeper特性的总结

核心原理,比kafka、hdfs、hbase之类的要简单很多,最最底层的技术,很多人都依赖他

《020_一清二楚:再次回头对ZooKeeper特性的总结》

集群模式部署

一般奇数节点,因为你5台机器可以挂2台,6台机器也是挂2台,不能超过一半的机器挂掉,所以5台和6台效果一致,那奇数节点可以减少机器开销,小集群部署,读多写少

主从架构:Leader、Follower、Observer(一般刚开始没必要用)

内存数据模型:znode,多种节点类型

客户端跟zk进行长连接,TCP,心跳,维持session

zxid,高32位,低32位

ZAB协议,2PC,过半ack + 磁盘日志写,commit + 写内存数据结构

支持Watcher机制,监听回调通知

顺序一致性:消息按顺序同步,但是最终才会一致,不是强一致

高性能,2PC中的过半写机制,纯内存的数据结构,znode

高可用,follower宕机没影响,leader宕机有数据不一致问题,新选举的leader会自动处理,正常运行,但是在恢复模式期间,可能有一小段时间是没法写入zk的

高并发,单机leader写,Observer可以线性扩展读QPS

Java
1
https://gitee.com/th_520/Java-Interview-Advanced.git
git@gitee.com:th_520/Java-Interview-Advanced.git
th_520
Java-Interview-Advanced
Java-Interview-Advanced
master

搜索帮助