一、常用命令
Create -c 容器节点,容器节点没有子节点的话会被zk定期删除(60s)
Create -s 永久有序节点
Create -e 临时节点
Create -e -s 临时有序节点
Create -w 创建节点的同事并且监听这个节点
Get -w 监听节点内容的变化
只有永久节点下面才可以创建子节点
Ls -w 监听目录,创建和删除子节点会受到通知,子节点中新增节点不会通知
Ls -r -w 监听子节点中子节点的变化,但内容的变化不会通知
Delete
Deleteall
Delete -v 删除指定版本
Addauth digest xuehao:123456 给当前用户赋予某种权限
Create node value auth:xuehao:123456:cdrwa
二、读写锁
上读锁的前提是之前的节点没有写锁。
上写锁的前提是之前的节点没有锁。
读锁:看最小的节点是否是读锁,是读锁的话可以上锁,不是读锁的话需要监听第一个节点的状态。
写锁:看自己是否是最小的节点,是最小的节点可以上锁,不是则不可以上锁,进行监听最小的节点。
三、leader选举过程
启动时的leader选举过程:1 生成一张自己的选票2把选票投给对方3把事务IDmyid更大的选票投到投票箱
崩溃恢复时的learder选举:leader建立完之后,leader周期性的不断向follwer发送心跳(ping命令,没有内容的socket)。当leader崩溃后follwer发现socket通道已关闭,状态由follwer变成looking,从新进行选举,此时集群不能对外提供服务。
数据二阶段提交
四、CAP理论和BASE理论
CAP理论:C 一致性A 可用性P分区容错性 ,不可能同时满足,只可以满足AP或者CP
BASE理论:基本可用 软状态 最终一致性
ZK追求的是CP 但是没有办法打到,所以是 顺序一致性(事务ID的单调递增)