美文网首页
Zookeeper通知机制为啥用watch?他是怎样设计的

Zookeeper通知机制为啥用watch?他是怎样设计的

作者: 进击的三文鱼 | 来源:发表于2021-05-12 08:40 被阅读0次

一 前言

Zookeeper是一个广受大家喜爱的框架,他能搞定分布式锁,也能实现服务之间更好的调用,而他是通过通知机制来实现的,那么他是怎么实现的呢?下面就来一步一步聊一聊

二 Zookper的数据结构

image.png
  1. workers是父节点,下面的每一个子节点都保存系统中每一个从节点的信息
  2. tasks是父节点,下面的znode子节点保存已将创建并等待从节点执行任务的信息
  3. assign是父节点,下面的znode子节点保存了分派到某个从节点的一个一个任务信息

三 znode的不同类型

  • 持久节点:会持久化到硬盘
  • 临时节点:当超时和主动关闭就会消失,客户端主动删除也会消失
  • 有序持久节点:/tasks/task-1 /tasks/task-2 可以直观的看到任务的创建顺序
  • 临时有序节点:就是临时节点+有序

四 监视与通知的设计

根据上面的知识基础,我们基本了解了zookeeper的面貌,下面就是他的通知机制的设计

zookeeper的客户端向zookeeper发送要执行的任务,发完了之后一种设计是每次客户端都去查询这个任务有没有被执行,这样查很多遍显然是不够聪明的

所以zookeeper采用了通知的机制,这种机制就是在zookeeper上设置一个监视点,当客户端第一次访问的时候把监视点watcher放到zookeeper上,然后客户端就不用管,这时候消费者,访问了zookeeper,处理了这个任务,那么watch就登场了,他会主动向客户端发送消息,告诉客户端任务被处理了,然后watch自己就移除掉,这样就不用客户端来没一次查询了。

这个就是watch的意义,是一种很聪明的做法,依据他就知道为什么代用zookeeper要使用watch。

五 Zookeeper的架构

  • 独立模式:有一个服务器,Zookeeper状态无法复制
  • 仲裁模式:由一组服务器组成,也就是分布式的,多个服务器投票选出一个主节点

相关文章

  • Zookeeper通知机制为啥用watch?他是怎样设计的

    一 前言 Zookeeper是一个广受大家喜爱的框架,他能搞定分布式锁,也能实现服务之间更好的调用,而他是通过通知...

  • zookeeper - watcher(9)

    watcher的特征 zookeeper的一大特点之一就是watch机制,所有基于zookeeper的消息通知...

  • zookeeper场景运用及原理

    ZooKeeper提供了什么? 文件系统 通知机制 Zookeeper文件系统 Zookeeper通知机制 客户端...

  • Zookeeper之Watch机制源码分析

    Zookeeper的Watch机制提供了服务通知功能,包含客户端的注册和触发、服务端的注册和触发 Zookeepe...

  • Watch机制

    Watch机制 ZooKeeper 的客户端可以通过 Watch 机制来订阅当服务器上某一节点的数据或状态发生变化...

  • soul从入门到放弃9--zookeeper数据同步

    一、前戏 基于zookeeper的watch机制实现 科普贴:https://blog.csdn.net/z691...

  • 一文教你如何玩转zookeeper

    该文主要包括: zookeeper核心架构设计 zookeeper数据模型 zookeeper监听机制 zooke...

  • disconf架构设计

    disconf是基于zookeeper watch机制的分布式配置统一解决方案。特点 支持配置(配置项+配置文件)...

  • 【总结】其他框架

    Zookeeper 作用:Zookeeper是分布式协调服务,主要提供文件系统和通知机制2个功能; 文件系统:提供...

  • 2020-08-19

    Zookeeper Watch 概要:zookeeper watch为了对znode数据变更时间进行监听。客户端在...

网友评论

      本文标题:Zookeeper通知机制为啥用watch?他是怎样设计的

      本文链接:https://www.haomeiwen.com/subject/jcwodltx.html