2019年面试官最喜欢问的28道ZooKeeper面试题(12)
(2)Watcher 触发
以服务端接收到 setData() 事务请求触发 NodeDataChanged 事件为例:
2.1 封装 WatchedEvent
将通知状态(SyncConnected)、事件类型(NodeDataChanged)以及节点路径封装成一个 WatchedEvent 对象
2.2 查询 Watcher
从 WatchTable 中根据节点路径查找 Watcher
2.3 没找到;说明没有客户端在该数据节点上注册过 Watcher
2.4 找到;提取并从 WatchTable 和 Watch2Paths 中删除对应 Watcher(从这里可以看出 Watcher 在服务端是一次性的 , 触发一次就失效了)
(3)调用 process 方法来触发 Watcher
这里 process 主要就是通过 ServerCnxn 对应的 TCP 连接发送 Watcher 事件通知 。
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 驾驶|LPL解说鼓鼓透露:进入联盟后被管理层“面试”8次,已经留下阴影
- 剑网3|剑网3:2019年大型818被铲出,女主简直无底线!
- t1|Teddy塞纳300层被动当奶妈?我现在去T1面试AD还赶得上夏季赛吗?
- estar|AG超玩会要小心eStar,阿泰表示,花海梦回2019年,有可能是AG夺冠最大的障碍
- 女主播|虎牙“在石250”重整公会,直播面试女主播过程,说自己是纯帮忙
- 乌迪尔|LOL:本周3款半价,这款2019年的皮肤,首次在周半价中出现
- theshy|IG为赢RNG拼了,苏小洛面试前TES教练,Theshy也扩展英雄池了
- 孙尚香|口袋试训QG,刺痛面试:你能给我们带来什么?口袋:我孙尚香能带飞!
- iqoo|5G为什么突然不火了?
- 阿里巴巴|程序员8年看了15个源代码,面试阿里6次被拒:技术好真没有啥用