zookeper知识点

总结:
(1)Zookeeper 是一个有上下级关系(Leader 、follower 、Observer )的集群。
(2)客户端链接 zookeeper 集群是通过 Seesion 链接(TCP 长链接)。
(3)客户端链接以后可以对节点(存储在 zookeeper 上 znode)增删改查。
(4)Znode 有四种类型:临时、临时有序、持久、持久有序,对(znode)节点做增删改查时我们可以监控其动作(Watcher 机制)还可以对节点设置权限访问。

1.zookeeper是什么。

个人感觉就是我们需要一个用起来像单机但是又比单机更可靠的东西。它用起来像单机一样,能够提供数据的强一致性,但是其实背后是多台机器构成的集群。
如果把各个节点比作各种小动物,那协调者,就是动物园管理员,这也就是Zookeeper名称的由来了
Zookeeper是开源的分布式应用协调系统。

ZooKeeper 是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能

Zookeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心。 服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据。如下图所示,在 Dubbo架构中 Zookeeper 就担任了注册中心这一角色。


zk

2. zk官方内部实现原理:

集群间通过 Zab 协议(Zookeeper Atomic Broadcast)来保持数据的一致性。


zk

zk满足的是cap中的cp(Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性))

zk搭建集群的时候,最好满足奇数。因为:半数以上的服务可用才可用

3.zookeeperzho中的一些重要概念

3.1 会话(Session)

Session 指的是 ZooKeeper 服务器与客户端会话。在 ZooKeeper 中,一个客户端连接是指客户端和服务器之间的一个 TCP 长连接。

3.2 Znode

Znode的数据模型如上图的zk的微观。
在Zookeeper中,node可以分为持久节点和临时节点两类。
(1) PERSISTENT:持久类型,如果不手动删除,就一直存在
(2) PERSISTENT_SEQUENTIAL
(3) EPHEMERAL:临时 客户端 session 失效就会随着删除节点 没有子节点
(4) EPHEMERAL_SEQUENTIAL 有序 自增

3.3 Watcher

Watcher(事件监听器),是Zookeeper中的一个很重要的特性。Zookeeper允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发的时候,ZooKeeper服务端会将事件通知到感兴趣的客户端上去,该机制是Zookeeper实现分布式协调服务的重要特性。

3.4 ACL

Zookeeper采用ACL(AccessControlLists)策略来进行权限控制.


ACL5种权限控制

image.png

4. Zookeeper中的集群角色介绍:

Zookeeper中引入了 Leader、Follower 和 Observer 三种角色


image.png

4.1. Leader

  1. 一个Zookeeper 集群同一时间只会有一个实际工作的Leader,它会发起并维护与各Follwer
    及Observer 间的心跳。
  2. 所有的写操作必须要通过Leader 完成再由Leader 将写操作广播给其它服务器。只要有超过
    半数节点(不包括observeer 节点)写入成功,该写请求就会被提交(类 2PC 协议)。

4.2. Follower

  1. 一个Zookeeper 集群可能同时存在多个Follower,它会响应Leader 的心跳,
  2. Follower 可直接处理并返回客户端的读请求,同时会将写请求转发给Leader 处理,
  3. 并且负责在Leader 处理写请求时对请求进行投票。

4.3. Observer

角色与Follower 类似,但是无投票权。Zookeeper 需保证高可用和强一致性,为了支持更多的客户端,需要增加更多Server;Server 增多,投票阶段延迟增大,影响性能;引入Observer,
Observer 不参与投票; Observers 接受客户端的连接,并将写请求转发给leader 节点; 加入更
多Observer 节点,提高伸缩性,同时不影响吞吐率。其次是 observer 不需要将事务持
久化到磁盘,一旦 observer 被重启,需要从 leader 重新同步整个名字空间。

5.zookeeper中的特性:

Zookeeper 是一个由多个 server 组成的集群,一个 leader,多个 follower。每个 server 保存一份数据副本。
全局数据一致
分布式读 follower,写由 leader 实施
更新请求转发,由 leader 实施
更新请求顺序进行,来自同一个 client 的更新请求按其发送顺序依次执行
数据更新原子性,一次数据更新要么成功,要么失败
全局唯一数据视图,client 无论连接到哪个 server,数据视图都是一致的
实时性,在一定事件范围内,client 能读到最新数据

6.ZAB协议

Zookeeper 的核心是原子广播,这个机制保证了各个 server 之间的同步。实现这个机制的协议叫做 Zab 协议。Zab 协议有两种模式,它们分别是恢复模式和广播模式。当服务启动或者在领导者崩溃后,Zab 就进入了恢复模式,当领导者被选举出来,且大多数 server 的完成了和 leader 的状态同步以后,恢复模式就结束了。状态同步保证了 leader 和 server 具有相同的系统状态。一旦 leader 已经和多数的 follower 进行了状态同步后,他就可以开始广播消息了,即进入广播状态。这时候当一个 server 加入 zookeeper 服务中,它会在恢复模式下启动,发现 leader,并和leader 进行状态同步。待到同步结束,它也参与消息广播

结 束

1.zookeeper是什么。
2.zookeeper的基本原理

  1. ZooKeeper 的一些重要概念(会话(Session)、 Znode、版本、Watcher、ACL)
  2. ZooKeeper 集群角色介绍 (Leader、Follower 和 Observer 三种角色)
    5.ZooKeeper 的特性。
  3. ZooKeeper的ZAB协议

参考博文:https://zhuanlan.zhihu.com/p/69246172

作业

image.png

课程一些参考

(1)


图片1

(2)


图片2

(3)

图片3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342