What is Zookeeper
我最早接触Zookeeper是因为我们项目使用的微服务治理架构是Dubbo,Dubbo推荐使用的服务注册中心就是Zookeeper。从本质上来说,Zookeeper就是一种分布式协调服务,在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。 ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。Zookeeper最早的应用是在Hadoop生态中,Apache HBase使用ZooKeeper跟踪分布式数据的状态。
实际上从它的名字上就很好理解,Zoo - 动物园,Keeper - 管理员,动物园中有很多种动物,这里的动物就可以比作分布式环境下多种多样的服务,而Zookeeper做的就是管理这些服务。
ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。
原语: 操作系统或计算机网络用语范畴。是由若干条指令组成的,用于完成一定功能的一个过程。具有不可分割性·即原语的执行必须是连续的,在执行过程中不允许被中断。
Zookeeper提供服务主要就是通过:数据结构 + 原语集 + watcher机制达到的。
分布式应用程序结合Zookeeper可以实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。
这里给大家分享一份详细介绍 ZooKeeper的文档,希望带大家稍微详细的了解一下 ZooKeeper 。如果没有学过 ZooKeeper,那么将会是你进入 ZooKeeper 大门的垫脚砖;如果你已经接触过 ZooKeeper ,那么本文将带你回顾一下 ZooKeeper 的一些基础概念。
目录



主要内容
第一部分 ZooKeeper的概念和基础
第一部分阐述了Apache ZooKeeper这类系统的设计目的和动机,并介绍分布式系统的一些必要背景知识。
第1章介绍了ZooKeeper可以做什么,以及其设计如何支撑这些任务。

第2章介绍了基本概念和基本组成模块,并通过命令行工具的具体操作介绍ZooKeeper可以做什么。

第二部分 使用ZoopKeeper进行开发
第二部分阐述程序员所需要掌握的ZooKeeper库调用方法和编程技巧,虽然对系统运维人员来说也有一定价值,但也可以不选择阅读。这一部分主要以Java语言的API为主,因为Java是非常流行的开发语言,如果你之前使用其他开发语言,可以通过这一部分内容来学习基本的技术和方法调用,之后通过其他语言来实现。另外,我们也为C语言的应用开发人员提供了一章内容的开发方法。
第3章介绍Java语言的API。
第4章解释如何跟踪和处理ZooKeeper中的状态变更情况。

第5章介绍如何在系统或网络故障时恢复应用。

第6章介绍为了避免故障要注意的一些繁杂却很重要的场景。

第7章介绍C语言版的API,该章也可以作为非Java语言实现的ZooKeeper API的基础,对非Java语言的开发人员非常有帮助。

第8章介绍一款更高层级的封装的ZooKeeper接口。

第三部分 ZooKeeper的管理
第三部分主要适用于ZooKeeper的系统运维人员,尤其在第9章章中即便对开发人员也很有价值。
第9章介绍ZooKeeper的作者们在设计时所采用的方案,这些知识对运维管理非常有帮助。

第10章介绍如何对ZooKeeper进行配置。

进大厂Zookeeper要学到什么程度?
对于进大厂Zookeeper要学到什么程度?这个问题小伙伴们应该还是比较关心的,简单点说,进大厂,你只是会简单的使用Zookeeper还不行,你要理解Zookeeper的工作原理和底层源码机制。在之前的文章中,我就说过:大厂对于技术的要求高,不是他们故意刁难人。而是大厂的用户量级很大,业务体量很高,如果你不深刻理解原理和源码机制,一旦线上生产环境由于高并发、大流量等场景出现一些偶然的系统问题,你可能就会半天定位不到问题,甚至会一脸懵逼的看着问题反复出现。所以,要想进大厂,就要深刻理解Zookeeper的原理和源码机制。
本文详细介绍了Zookeeper的原理及应用场景,包括服务注册与发现、数据发布/订阅等。同时,提供了Zookeeper的开发指南,涵盖了Java和C语言API的使用方法。

1712

被折叠的 条评论
为什么被折叠?



