Zookeeper大白话入门,真的很通俗易懂

942 阅读3分钟

这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

前言

今天本来是打算和大家分享一下,Zookeeper作为分布式锁的使用方式,不过斟酌之后,最后决定先来几篇基础性文章,系统的介绍Zookeeper的基础以及核心知识点,最后再来介绍它的应用场景以及集群部署的知识。

对分布式系统有兴趣的小伙伴,可以和花哥一块学习,我们一起勉励,共同进步,也可以在评论区分享一下你在工作中遇到了哪些问题,贴出来大家一起探讨。

zookeeper是什么

首先,我们打开Zookeeper官网(zookeeper.apache.org/),官方在首页第二段中给出定义,简单概括就是:ZooKeeper 是一个用于分布式应用程序的高性能协调服务,提供集中式信息存储服务

确实,上面这句不像人话。

只看定义确实很难理解这玩意到底是什么,我们先看一下他的结构。Zookeeper内部维护的是类似于文件系统的树形结构(文件和目录),在这个结构中,每一个子目录(如/app1)被称为znode,我们可以对znode执行增加删除等操作,znode下还可以继续增加、删除子znode。

image.png

分布式协调服务是什么

上面说到ZooKeeper 是一个用于分布式应用程序的高性能协调服务,那小伙伴们知道什么是分布式协调服务吗?

单机服务我们都知道,是将整个服务部署在一台机器上,每一次接口涉及到的多个步骤都在单台机器上处理,这样做便于开发部署,但是单台系统处理能力有限,对于并发度高的系统,如淘宝京东等系统,是完全不适用的,这时候就需要分布式系统。

在分布式系统中,将原来单机服务中一次请求涉及的多个步骤拆分,由多台机器上的服务共同完成,但是我们依旧需要保证步骤之间的顺序性,这个时候我们要处理不同机器上进程间的资源竞争,因此就需要一种机制,在分布式系统之间进行协调。我们通常就会把分布式系统需要协调管理的公共部分抽出来作为基础服务供大家使用,这也就是分布式协调服务。

zookeeper能做什么

我们可以通过Zookeeper实现很多功能,比如分布式统一配置中心服务注册中心分布式锁等功能。

Zookeeper的应用案例也比较广泛,如:Hbase中服务协调、dubbo的服务注册、Mycat集群管理、配置管理等。

以配置中心为例,在分布式系统中,部署有三台服务,如果修改配置文件,需要将三台服务中的配置都一一修改,但是引入zookeeper统一配置后,我们只要将配置放到zookeeper的某一个目录节点(/app1)中,然后这三台服务都去监听/app1这个znode,只要配置发生变化,zookeeper就会发出通知,这样每一台服务都会收到通知并应用最新的配置。

image.png

如何学习

无论哪一项技术,官网都是最权威的信息来源,这里简单介绍一下官网的学习方法。

输入地址zookeeper.apache.org/index.html可以登录到zookeeper官网:

image.png

点击 Learn about可以打开具体的文档。

image.png

写在最后

今天主要介绍了Zookeeper是什么、能做什么、如何去学习,明天我们会以动手为主,如何在linux、windows中部署,已经常见的基础命令。