Dubbo 中 Zookeeper 注册中心原理分析
物联网 2025-11-26 21:27:38
0

当服务提供者启动时 ,中r注服务提供者将自己提供的册中服务信息注册到注册中心,注册中心将这些信息记录下来。心原析服务消费者启动时 ,理分向注册中心发起订阅 ,中r注将自己感兴趣的册中服务提供者的信息拉取到本地并缓存起来,用于后续远程调用。心原析另外 ,理分注册中心能够感知到服务提供者新增或者下线 ,中r注并更新自己的册中服务信息 ,同时通知服务消费者告知服务提供者新增/下线,心原析从而消费者也可以动态感知到服务提供者的理分变化。云计算

一 、中r注ZooKeeper注册中心
ZooKeeper 是册中 Apache 的顶级项目。ZooKeeper 为分布式应用提供了高效且可靠的心原析分布式协调服务,提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务 。在解决分布式数据一致性方面 ,ZooKeeper 并没有直接采用 Paxos 算法 ,而是采用了名为 ZAB 的一致性协议。
1.1 ZooKeeper数据结构ZooKeeper 的数据模型是源码下载一个树形结构的文件系统 。Dubbo服务在ZooKeeper中的数据结构(旧版模型,Dubbo2.7版本后路由数据、配置数据不再写到该目录下)如下图所示 。

ZooKeeper中的节点分为持久节点、持久顺序节点、临时节点 、临时顺序节点。Dubbo使用ZooKeeper作为注册中心时,不关心节点的创建顺序 ,只会创建持久节点和临时节点 。
持久节点: 服务注册后保证节点不会丢失,香港云服务器注册中心重启也会存在 。临时节点: 服务注册后连接丢失或session超时 ,注册的节点会自动被移除 。1.2 ZooKeeper的Watcher机制客户端和服务器维持数据交互通常有两种形式:
客户端定时向服务器轮询服务器主动向客户端推送数据ZooKeeper采用的是方式2 ,主动向客户端推送数据。客户端注册监听它关心的节点(注册Watcher监听指定节点) ,当节点状态发生变化(数据变化 、子节点增减变化)时 ,则相应的Watcher被触发 ,ZooKeeper 服务会通知客户端 ,高防服务器这就是Watcher机制 。
Watcher有以下特点:
主动推送:Watcher被触发时 ,由ZooKeeper主动将更新推送给客户端 ,而不需要客户端轮询 。一次性:在节点上注册Watcher监听后 ,当节点状态发生变化时该Watcher只会被触发一次 ,如果客户端想再收到后续发生变化的通知 ,需要重新再注册一次Watcher。可见性