本文主要内容如下:
① 简要介绍zookeeper Watcher机制和回调接口
② ZKFC启动过程,以及通过图例讲解ZKFC处理zookeeper节点事件的流程。
一、 前置知识:Zookeeper Watcher机制和回调
介绍ZKFC之前,我们先介绍一些与本文相关的Zookeeper的预备知识。
1.1 Watcher机制概述
Zookeeper中有一个Watcher机制,来实现发布/订阅功能。Zookeeper 允许客户端向服务端的某个 Znode 注册一个 Watcher 监听,当服务端的一些特定事件触发了这个 Watcher,服务端会向指定客户端发送一个事件通知来实现分布式的通知功能,然后客户端根据 Watcher 通知状态和事件类型做出业务上的改变。
工作过程:
(1)客户端注册 Watcher
(2)服务端处理 Watcher
(3)客户端回调 Watcher
Watcher机制特性总结:
(1)一次性
无论是服务端还是客户端,一旦一个 Watcher被触发 ,Zookeeper 都会将其从相应的存储中移除。如果需要一直监听,则需要再注册。这样的设计有效的减轻了服务端的压力,不然对于更新非常频繁的节点,服务端会不断的向客户端发送事件通知,无论对于网络还是服务端的压力都非常大。
(2)客户端串行执行
客户端 Watcher 回调的过程是一个串行同步的过程。
(3)轻量
3.1 Watcher 通知非常简单ÿ