Java口试39-Zookeeper中的Watch机制的原理

种地  论坛元老 | 2025-4-13 01:51:34 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1709|帖子 1709|积分 5127

Zookeeper是一个分布式和谐组件,为分布式架构下的多个应用组件提供了次序访问控制能力。它的数据存储采取了雷同于文件系统的树形结构,以节点的方式来管理存储在Zookeeper上的数据。

Zookeeper提供了一个Watch机制,可以让客户端感知到Zookeeper Server上存储的数据厘革,这一机制可以让Zookeeper实现很多的场景,好比配置中心、注册中心等。Watch机制采取了Push的方式来实现,也就是说客户端和Zookeeper Server会建立一个长毗连,一旦监听的指定节点发生了厘革,就会通过这个长毗连把厘革的变乱推送给客户端。

Watch的具体流程分为几个部分:

  • 首先,是客户端通过指定命令好比exists、get,对特定路径增加watch
  • 然后服务端收到哀求以后,用HashMap保存这个客户端会话以及对应关注的节点路径,同时客户端也会使用HashMap存储指定节点和变乱回调函数的对应关系。
  • 当服务端指定被watch的节点发生厘革后,就会找到这个节点对应的会话,把厘革的变乱和节点信息发给这个客户端。
  • 客户端收到哀求以后,从ZkWatcherManager里面对应的回调方法举行调用,完成变乱变更的关照。

注:博文中图片获取自网上,侵删。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表