太牛了,Alibaba架构师总结的383页ZK技术精华全是干货

本文详细解读Zookeeper在分布式系统中的关键角色,涵盖概念基础、API应用、开发实战及运维管理,揭示为何它是可靠分布式服务基石。

在Zookeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services。
这大概描述了Zookeeper主要是一个分布式服务协调框架,实现同步服务,配置维护和命名服务等分布式应用。是一个高性能的分布式数据一致性解决方案。
通俗地讲,ZooKeeper是动物园管理员,它是拿来管大象 Hadoop、鲸鱼 HBase、Kafka等的管理员。

相信大家对 ZooKeeper 应该不算陌生,但是你真的了解 ZooKeeper 是什么吗?如果别人/面试官让你讲讲 ZooKeeper 是什么,你能回答到哪个地步呢?

想了半天,脑海中只是简单的能浮现出几句话:

  • Zookeeper 可以被用作注册中心。
  • Zookeeper 是 Hadoop 生态系统的一员。
  • 构建 Zookeeper 集群的时候,使用的服务器最好是奇数台。

可见,我对于 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进行配置。

总结

很多中间件,比如Kafka、Hadoop、HBase,都用到了 Zookeeper,于是很多人就会去了解这个 Zookeeper 到底是什么,为什么它在分布式系统里有着如此无可替代的地位。

在踩了很多坑之后,我决定来回答下这个问题。

其实学任何一项技术,首先都要弄明白,为什么需要这项技术。

为什么需要 Zookeeper

一句话总结,就是我们需要一个用起来像单机但是又比单机更可靠的东西。

这一份Alibaba架构师尽总结的383页ZKper技术精华,是可以免费分享给大家了, 希望能给到你一点帮助

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值