分析 Zookeeper 部分源码

DataTree:数

因为 Zookeeper 和 Linux 是类似的,使用树形结构来管理路径。

所以名称是 DataTree “数据树” 的意思。

在这里插入图片描述

DataNode:节点

DataNode “数据节点”

DataTree 与 DataNode 的关系就像是 : 大树与叶子的关系。

记住 Zookeeper 这颗“大树”的“根”是“/”

在这里插入图片描述

创建/删除节点

可以根据最关键的绿色标记,来进行对比查看。
在这里插入图片描述

设置/获取数据

在这里插入图片描述

关闭会话

会话关闭,临时节点就会被删除。

例如:zk.sh 连接上 Zookeeper 之后,create -e /taopanfeng "data" 就会创建一个临时节点“/taopanfeng”,其中“-e”的这个“e”就是“ephemeral 短暂的”
当我们quit退出之后,这个节点就消失了。就是因为我们出发了这个方法

在这里插入图片描述

总结一下

为什么 Zookeeper 安全,因为它用 ConcurrentHashMap 来管理每个节点。
而每个节点的操作,都是用了 synchronized 关键字来保证安全的。