zookeeper连接,注册与监听
接着微服务架构之Dubbo服务发布(2)我们详细讲解
连接
|
|
首先第一个重点来了,追踪代码流程,我们先看其时序图,最终registry的实例是ZookeeperRegistry。
对于ZookeeperRegistry,是很重要的,在实例化的过程中做了很多事情。
|
|
从代码中我们看出包括1.监听状态,恢复连接时候,恢复订阅 2.定时检测并连接注册中心, 如果失败了就重连 3.没有本地缓存文件,就先建立本地缓存文件,然后加载缓存文件的内容。
注册
|
|
最重要的是register(registryUrl, registedProviderUrl)
|
|
|
|
其中,持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动清除这个节点,也就是说不会因为创建该节点的客户端会话失效而消失。临时节点的生命周期和客户端会话绑定,也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉。
订阅
服务提供者而言,它的监听和订阅主要针对的是dubbo-admin控制台下发的override数据。
|
|
|
|
|
|
|
|
|
|
|
|
总结
在服务发布过程中,服务提供者首先连接zookeeper , 返回一个ZookeeperRegistry实例,它在初始化时候做了3件事情:1.监听状态,恢复连接时候,恢复订阅 2.定时检测并连接注册中心, 如果失败了就重连 3.没有本地缓存文件,就先建立本地缓存文件,然后加载缓存文件的内容;注册zookeeper主要是完成zookeeper相关节点的创建;订阅zookeeper主要是在zookeeper中创建configurators持久节点,监听dubbo-admin下发的override数据,并及时更新本地缓存文件。