一、概念
Zookeeper是一个分布式应用程序的高性能协调服务,可以对应用程序服务进行发现与注册
二、结构
1. 树形目录结构,每个子目录叫做节点znode,可以存放数据
2. 持久节点:当客户端与zookeeper服务器端断开后,该节点仍然存在;对节点进行有序编号后,成为持久有序节点
3. 临时节点:当客户端与zookeeper服务器端断开后,该节点被删除,并且临时节点不存在子节点;对节点进行有序编号后,成为临时有序节点
4. 节点监听:客户端可以监听某个节点,当节点变化时,会通知此客户端
三、Zookeeper分布式锁
1. 多个进程监听多个临时有序节点,每个进程对应一个
2. 编号最小的进程获得锁,操作资源
3. 当操作远程后,删除对应临时有序节点,释放锁,下一个编号最小的节点便获得了锁
四、服务注册和发现
1. 服务注册:服务提供方把服务注册到Zookeeper上,一个服务可能对应多个不同的IP
2. 服务注册的原理是:Zookeeper为每个应用创建一个持久节点,在持久节点下,创建临时节点,记录每个微服务的IP
3. 服务订阅(监听):调用方从Zookeeper中获取提供方的调用地址列表
4. 服务动态发现:Zookeeper会把节点的变化信息,推送给客户端
参考: