核心原理,比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