![Kafka进阶](https://wfqqreader-1252317822.image.myqcloud.com/cover/408/43738408/b_43738408.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4.3 ZooKeeper的观察机制
ZooKeeper作为一款成熟的分布式协调框架,其观察机制是很重要的。观察者会订阅一些感兴趣的主题,这些主题一旦发生变化,就会自动通知这些观察者。ZooKeeper的观察机制是一个轻量级的设计。它采用了一种推拉结合的模式。
一旦服务器端感知主题发生变化,那么只会给关注的客户端发送一个事件类型和节点信息,而不会发送具体的变更内容,所以事件本身是轻量级的,这就是所谓的“推”部分。然后,收到变更通知的客户端需要自己去拉变更的数据,这就是“拉”部分。
Kafka将集群信息注册到ZooKeeper集群中,并由ZooKeeper进行观察和监听。当前Kafka集群发生了变化,例如,某个Broker宕机或出现故障,这些信息都会被ZooKeeper感知,从而进行相应的处理。
下面的代码示例展示了ZooKeeper的观察机制。在这里的示例中,我们监听ZooKeeper节点/testwatcher的变化。
![](https://epubservercos.yuewen.com/527ABA/23020654009771406/epubprivate/OEBPS/Images/42653-00-025-1.jpg?sign=1739442701-S57GQJymOF6roCPciS0wyhhsJHa7H3zb-0-10b23c19ee5f9fe9c4df1f3044ebec6d)
![](https://epubservercos.yuewen.com/527ABA/23020654009771406/epubprivate/OEBPS/Images/42653-00-026-1.jpg?sign=1739442701-97ReMqqiq5FfTTIZpcoggMRJNWBkYiP7-0-7eb4446bf6434458b8dd0c926712692e)