原理:基于watcher事件通知机制
常用于同步配置信息,配置信息一般满足如下特性:
原理:基于zookeeper的顺序节点的特性:在顺序节点下调用create()方法会返回一个完整的节点名,例如:job-00003。那这个文件的完整路径就是一个全局唯一的名字了
原理:多个客户端创建同一个节点,只有一个客户端能创建成功(必须是临时节点,当master与zookeeper失去连接时zookeeper会自动清除临时节点,否则别的节点仍然不能创建该节点,会导致剩下的slave无法成为master)。其他客户端发现这个节点已经存在之后,会在这个节点上注册监听,当该节点被删除时,立刻触发新一轮竞选
有一种情况:假如master假死一段时间,zookeeper以为master挂了,删除了其创建的锁节点(其他slave可能立马成为了master)。一段时间后假死的master恢复了,它还以为他是master。这样就出现2个master了。
假如master假死一段时间,zookeeper以为master挂了,删除了其创建的锁节点(其他slave可能立马成为了master)。一段时间后假死的master恢复了,当它去更新锁节点时,发现它没有权限,他就知道自己现在已经不是master了,并将自己自动降级为slave。
我不太明白,master选举完成之后,为什么还需要去更新锁节点?
原理:多个客户端创建同一个临时节点,只有一个客户端能创建成功。其他客户端发现这个节点已经存在之后,会在这个节点上注册监听,当该节点被删除时,立刻触发新一轮竞争
原理:创建一个顺序节点,所有的读操作都在该节点下创建一个子节点。写操作时,判断这个顺序节点下有没有子节点,如果没有才能写。
原理:创建一个根顺序节点,每个会话都在该节点下创建一个目录。
更多案例:参考【从paxos到zookeeper】