Zookeeper概念
zookeeper是apacheHadoop下的子项目,是一个树形目录服务。
zookeeper是一个分布式的开源的分布式应用程序的协调服务。
zookeeper提供的只要功能:
配置管理
分布式锁
集群管理
zookeeper分布式锁
zookeeper分布式锁原理
核心思想:当客户端想要获取锁,则创建节点,使用完锁则删除节点
1、客户端获取锁时,在lock节点下创建临时顺序节点
临时:为了但某些客户端出现宕机等问题的时候,会话结束的时候可以自动删除节点
顺序:为了找最小节点
2、客户端获取lock下所有子节点,获取到之后如果发现自己的直接点序号最小,就认为该客户端获得了锁,使用完后将该子节点删除
3、如果发现自己创建的节点并非lock所有子节点中最小的,说明自己还没有获取锁,此时客户端需要找出比自己小的那个节点,同时对其注册事件监听器,监听删除事件
4、如果发现比自己小的那个节点被删除,则客户端的watcher会收到相应通知,此时再次判断是否是lock子节点中序号最小的,如果是则获取到了锁,如果不是则重复以上步骤继续获取到比自己晓得一个节点去注册
zookeeper集群