Zookeeper面试题

题目

我们平时所说的 CAP 理论,请讲讲,zookeeper 满足了哪两个?讲讲 zookeeper 锁是怎么实现的?如果实现方式是所有的节点都监控一个临时节点,会产生 “惊群效应”。怎么解决的。

[惊群效应:客户端无端的接受到过多的和自己不相关的事件通知,这如果在集群规模大的时候,会对 Server 造成很大的性能影响,并且如果一旦同一时间有多个节点的客户端断开连接,这个时候,服务器就会像其余客户端发送大量的事件通知。]

答案

zookeeper 满足了 AP 。

实现分布式锁:

在 zookeeper 的叶子节点上面创建零时有序节点,然后将该节点值获取出来判断是不是叶子节点集合里面的最小值,如果是最小值就认为获取到当前锁,如果不是最小值,我们可以利用有序这个机制。就让当前节点 watch 比当前值小 1 的零时节点(解决 “惊群” 效应),当前一个节点被删除的时候,该节点就获取到锁。