Zookeeper该怎么学?这份ZK技术精华就赠予你吧,助你通关打怪兽!

本文详细介绍了Zookeeper的原理及应用场景,包括服务注册与发现、数据发布/订阅等。同时,提供了Zookeeper的开发指南,涵盖了Java和C语言API的使用方法。

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的原理和源码机制。

1 操作系统 操作系统是计算机系统中的核心系统软件,负责管理和控制计算机系统中硬件和软件资源,合理组织计算机工作流程和有效利用资源,在计算机与用户之间起接口的作用 1.1 操作系统的类型 操作系统的类型(依据使用环境和对作业的处理方式)分为批处理、分时、实时、网络和分布式等。 1、批处理:把作业分类,把一批作业编成一个作业执行序列。可分联机和脱机。特征为脱机使用计算机、成批处理和多道程序运行。 2、分时:采用分时技术,使多个用户同时以会话控制自己程序的运行,每个用户都认为拥有各自独立的、支持自己请求服务的系统。特征有交互性、多用户同时性和独立性。 3、实时:专用,系统与应用难分离。并不强调资源利用率,更关心及时性、可靠性和完整性。分实时过程控制和实时信息处理。特征有即时响应、高可靠性。 4、网络:按网络架构的各个协议标准制订,包括网络管理、通信、资源共享、系统安全和多种网络应用,实现协同工作和应用集成。特征有互操作性、协作处理。 5、分布式:要求一个统一的操作系统,实现系统操作的统一性,负责全系统的资源分配和调度,为用户提供统一的界面。 6、操作系统的5项基本功能,包括处理器管理、存储管理、设备管理、文件管理和作业管理。 1.2 操作系统的结构 结构分为无序、层次、面向对象、对称多处理和微内核。 1、无序:又称整体或模块结构。以大型表格和队列为中心,操作系统各个部分围绕着表格运行,整个系统是一个程序。模块结构相对独立,模块之间通过规定的接口相互调用。优点为缩短开发周期。缺点是模块之间调用关系复杂、相互依赖,使分析、移植和维护系统较易出错。 2、层次:操作系统分解成若干个单向依赖的层次,由多层正确性保证操作系统的可靠性。优点层次结构清晰,简化了接口设计,有利于系统功能的增加或删改,易于保证可靠性,便于维护和移植。 3、面向对象:基于面向对象程序设计的概念,采用了各种不同的对象技术。把对象最为系统中的最小单位,由对象、对象操作、对象保护组成的操作系统。优点适用于网络操作系统和分布式操作系统。 4、对称多处理:所有多处理运行且共享同一内存(内存储器、主存、实存)。优点适合共享存储器结构的多处理机系统。 5、微内核:把系统的公共部分抽象出来,形成一个底层核心,提供最基本的服务,其他功能以服务器形式建立在微内核之上。具有良好的模块化和结构化特征,模块之间和上下层之间通过消息来通信。 操作系统大多拥有两种工作状态:核心态和用户态。一般的应用程序工作在用户态,内核模块和最基本的操作系统核心工作在核心态。 微内核结构由一个简单的硬件抽象层和一组比较关键的原语(仅仅为建立系统必须的部分,包括线程管理、地址空间和进程间通信)或系统调用组成。 微内核的目标将系统服务的实现和系统的基本操作规则分离开来
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值