码迷,mamicode.com
首页 > 其他好文 > 详细

大数据学习(20)—— Zookeeper介绍

时间:2021-01-30 12:04:59      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:问控制   load   空间   接收   分布   朋友   访问控制   znode   blank   

ZooKeeper是什么

就像冯巩每次出场都说:“亲爱的观众朋友们,我想死你们啦”一样,我再哔哔一次,学习大数据官网很重要。Zookeeper官网看这里ZooKeeper

ZooKeeper 是一个开源的分布式协调服务,它本身也是分布式设计。它提供了一组简单的原语,基于这些指令,分布式应用能够实现同步、配置更新和分组等高级服务。它的设计宗旨是简单易用,它使用了树形结构的文件目录作为数据模型。

协调服务要做到准确无误是很难的,它容易引发条件竞争和死锁。ZooKeeper的目的,就是让分布式应用不在协调服务上耗费精力,只需要关注业务逻辑实现。通俗地讲,ZooKeeper就是一场交响乐的总指挥,你钢琴师、鼓乐手不用考虑乐队其他成员在干嘛,只看总指挥的指示就好了。

为啥叫ZooKeeper

 ZooKeeper顾名思义,动物园管理员,它长这样

技术图片

这个小伙子管了哪些东西呢?看下面

技术图片技术图片技术图片技术图片

有啥发现没?是不是全是动物?

ZooKeeper架构

技术图片

这是一个主从架构,多个ZooKeeper实例之间通过选举确定一个leader,写操作都是leader来执行,读操作可以是客户端连接的follower节点处理。顺便提一下,在CAP理论中,ZooKeeper是CP模型,牺牲了可用性来保证一致性。后面细说如何选举。

Client通过TCP连到一个ZooKeeper上,向ZooKeeper集群进行发送请求、接收响应、监听事件、发送心跳等操作。如果Client连接的ZooKeeper宕机,它会自动连接到其他节点。

数据模型

技术图片

ZooKeeper的命名空间就像一个标准的文件系统,每个节点都是一个路径,叫Znode,可以存放数据。每个节点是一个键值对,它只能存放KB级的数据,比如状态信息、配置、位置信息等等。Znode会记录一些状态信息,比如数据版本号、访问控制列表变更、时间戳等等,用来做协调控制。每当数据更新的时候,版本号会+1。

还有一类节点叫临时节点,当创建这些节点的客户端还活着的时候它就一直存在,但连接断开之后就消失了。

监听

这个概念类似于Java中的actionListener。客户端可以在节点上设置监听,当节点数据发生变化的时候,客户端会收到通知。zk3.6版本之后,监听是永久的。在这个版本之前,监听被触发之后就自动失效。

特性

ZooKeeper基于内存处理数据,速度非常快,而且它提供了一系列机制来保证提供可靠的服务。

  • 顺序执行:按照客户端发送指令的先后顺序来执行操作
  • 原子性:更新操作不存在中间状态,只有成功或失败两种选择
  • 统一视图:集群里的所有服务器都提供统一的视图,即这是一个CP模型,强一致
  • 可靠
  • 快速

大数据学习(20)—— Zookeeper介绍

标签:问控制   load   空间   接收   分布   朋友   访问控制   znode   blank   

原文地址:https://www.cnblogs.com/burningblade/p/14306432.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!