Java架构技术进阶Java老男孩的成长之路

2020复工跳槽季,ZooKeeper灵魂27连问,这谁顶得住?

2020-02-24  本文已影响0人  java菲菲

我眼中的ZooKeeper

ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

Zookeeper 保证了分布式一致性特性(5个): 顺序一致性、原子性、单一视图、可靠性、实时性(最终一致性)


image.png

ZooKeeper灵魂27连问+23个常备知识点

(1)ZooKeeper灵魂27连问

  1. ZooKeeper 提供了什么?
  2. Zookeeper 文件系统?
  3. ZAB 协议?
  4. 四种类型的数据节点 Znode
  5. Zookeeper Watcher 机制 -- 数据变更通知
  6. 客户端注册 Watcher 实现
  7. 服务端<typo id="typo-422" ignoretag="true">处理</typo> Watcher 实现
  8. 客户端回调 Watcher
  9. ACL 权限控制机制
  10. Chroot 特性
  11. 服务器角色
  12. 会话管理
  13. Zookeeper 下 Server 工作状态
  14. 数据同步
  15. zookeeper 是如何保证事务的顺序一致性的?
  16. 分布式集群中为什么会有 Master?
  17. zk 节点宕机如何处理?
  18. zookeeper 负载均衡和 nginx 负载均衡区别
  19. Zookeeper 有哪几种几种部署模式?
  20. 集群最少要几台机器,集群规则是怎样的?
  21. 集群支持动态添加机器吗?
  22. Zookeeper 对节点的 watch监听通知是永久的吗?为什么不是永久的?
  23. Zookeeper 的 java 客户端都有哪些?
  24. chubby 是什么,和 zookeeper 比你怎么看?
  25. 说几个 zookeeper 常用的命令。
  26. ZAB 和 Paxos 算法的联系与区别?
  27. Zookeeper 的典型应用场景?

... ....

**1. ZooKeeper 提供了什么? **

2. Zookeeper 文件系统?

Zookeeper 提供一个多层级的节点命名空间(节点称为 znode)。与文件系统不同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。

Zookeeper 为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得 Zookeeper 不能用于存放大量的数据,每个节点的存放数据上限为1M。

3. ZAB 协议?

ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持崩溃恢复的原子广播协议。

ZAB 协议包括两种基本的模式:崩溃恢复和消息广播。

当整个 zookeeper 集群刚刚启动或者 Leader 服务器宕机、重启或者网络故障导致不存在过半的服务器与 Leader 服务器保持正常通信时,所有进程(服务器)进入崩溃恢复模式,首先选举产生新的 Leader 服务器,然后集群中 Follower 服务器开始与新的 Leader 服务器进行数据同步,当集群中超过半数机器与该 Leader服务器完成数据同步之后,退出恢复模式进入消息广播模式,Leader 服务器开始接收客户端的事务请求生成事物提案来进行事务请求处理。

**4. 四种类型的数据节点 Znode **

除非手动删除,否则节点一直存在于 Zookeeper 上

临时节点的生命周期与客户端会话绑定,一旦客户端会话失效(客户端与zookeeper 连接断开不一定会话失效),那么这个客户端创建的所有临时节点都会被移除。

基本特性同持久节点,只是增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。

基本特性同临时节点,增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。

**5. Zookeeper Watcher 机制 -- 数据变更通知 **

Zookeeper 允许客户端向服务端的某个 Znode 注册一个 Watcher 监听,当服务端的一些指定事件触发了这个 Watcher,服务端会向指定客户端发送一个事件通知来实现分布式的通知功能,然后客户端根据 Watcher 通知状态和事件类型做出业务上的改变。

**工作机制: **

Watcher 特性总结

无论是服务端还是客户端,一旦一个 Watcher 被触发,Zookeeper 都会将其从相应的存储中移除。这样的设计有效的减轻了服务端的压力,不然对于更新非常频繁的节点,服务端会不断的向客户端发送事件通知,无论对于网络还是服务端的压力都非常大。

客户端 Watcher 回调的过程是一个串行同步的过程。

6. 客户端注册 Watcher 实现

... ...

篇幅原因,这里已将Zookeeper 27连问整理成如下所示的Word文档,有需要的话可以下载整个文档查看更方便

注意:下面的23个Zookeeper常备知识点为方便大家学习,也已整理成PDF文档,有需要下载这些文档的朋友可以 【“点击我“】免费领取!!

1.png

(2)23个Zookeeper常备知识点

  1. ZooKeeper 是什么?
  2. ZooKeeper 提供了什么?
  3. Zookeeper 文件系统
  4. 四种类型的 znode
  5. Zookeeper 通知机制
  6. Zookeeper 做了什么?
  7. zk 的命名服务(文件系统)
  8. zk 的配置管理(文件系统、通知机制)
  9. Zookeeper 集群管理(文件系统、通知机制)
  10. Zookeeper 分布式锁(文件系统、通知机制)
  11. 获取分布式锁的流程
  12. Zookeeper 队列管理(文件系统、通知机制)
  13. Zookeeper 数据复制
  14. Zookeeper 工作原理
  15. zookeeper 是如何保证事务的顺序一致性的?
  16. Zookeeper 下 Server 工作状态
  17. zookeeper 是如何选取主 leader 的?
  18. 分布式通知和协调
  19. 机器中为什么会有 leader?
  20. zk 节点宕机如何处理?
  21. Zookeeper 同步流程
  22. zookeeper 负载均衡和 nginx 负载均衡区别
  23. zookeeper watch 机制
2.png

《ZooKeeper-分布式过程协同技术详解》

3.png 4.png 5.png

为了更好地让大家学习Zookerper和更多知识,上面说的这本《ZooKeeper-分布式过程协同技术详解》以及下面这本《Java核心知识整理(283页PDF)》都可以免费分享,文末看看免费下载方式吧~

《Java核心知识整理(283页PDF)之Zookerper》

7.png 6.png

总结一下吧

马上就要迎来全面复工,不知道准备跳槽面试的你能否经得住面试官这ZooKeeper灵魂27连问呢?

文中提及的ZooKeeper灵魂27连问+23个常备知识点+《ZooKeeper-分布式过程协同技术详解》+《Java核心知识整理(283页PDF)之Zookerper》应该可以助你一臂之力,如若有需要,那就来点击下面的链接进去石墨文档免费下载吧!!
《分布式技术专题:Nginx+ZooKeeper+ActiveMQ+Kafka+RabbitMQ+memcached+MongoDB+Redis等》

上一篇 下一篇

猜你喜欢

热点阅读