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

前言

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

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

zookeeper 是什么

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

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

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

分布式协调服务是什么

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

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

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

zookeeper 能做什么

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

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

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

如何学习

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

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

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

  • Developers:开发者 API Docs:API 文档 Programmer's Guide :开发者指南 ZooKeeper Java Example:Java 案例 ZooKeeper Recipes:常见问题的高级解决方案

  • Administrators & Operators:管理员使用 Administrator's Guide:管理员指南 ZooKeeper CLI:命令行 ZooKeeper Tools:工具 ZooKeeper Monitor:监控

  • ZooKeeper Internals:原理相关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值