zookeeper的主要功能 或者zookeeper是干嘛的
zookeper 在 分布式集群中 主要用来做集群管理, 统一命名服务、统一配置管理、统一集群管理、分布式锁 等服务。
我举个简单的例子, 先理解一下:
比如集群管理
在分布式环境中,掌握集群中每个节点的状态是有必要的,我们用zookeeper做集群管理可以实现检测是否有机器加入或者退出,还可以用来选举集群的master。
我么你来思考怎么实现检测到是否有机器退出呢?
要实现检测是否有机器退出,我们要在集群中的所有机器约定在父目录下创建临时目录节点,然后监听父目录节点的子节点变化情况。
如果有机器挂掉,该机器与 zookeeper的连接断开,其所创建的临时目录节点被删除,所有其他的机器都将收到通知:这台机器离开了集群。
只要客户端 A 挂了,那/GroupMember/A这个节点就会删除,通过监听 GroupMember 下的子节点,客户端 B 和客户端 C 就能够感知到客户端 A 已经挂了(新增也是同理)
检测是否有机器加入也是类似的过程。
在这个过程中,有2个功能非常重要,就是监听机制,还有 临时目录节点。
理解这点,必须要 了解 zookeeper 监听器原理